Trang chủ » Partial class là gì ? Sử dụng partial class trong C#

Partial class là gì ? Sử dụng partial class trong C#

Đinh Thao 28 Th9, 2021

Một trong hai kỹ thuật đặc biệt của C# giúp tách code hiệu quả nhất chính là partial class.

Bạn đã bao giờ nghe thấy partial class đâu đó một lần nào chưa? Nếu chưa thì 

Vậy partial class là gì và cách sử dụng nó trong C# như thế nào?

Chúng ta cùng đi tìm hiểu và giải thích vấn đề này ở bài viết dưới đây nhé!

Partial class là gì?

Partial class là gì

Partial class là gì

Partial Class trong C# là một tính năng giúp giải quyết vấn đề chia một class thành hai hoặc nhiều những file, những phần nhỏ khác nhau. 

Các phần nhỏ khi đã được chia sẻ sẽ chứa một phần tính năng của class là properties hoặc methods…Tất cả những phần đã được tách trước đó sẽ được hợp nhất lại bên trong class khi chúng ta thực hiện biên dịch chương trình.

Sử dụng Partial class trong C#

Sử dụng Partial class trong C#

Sử dụng Partial class trong C#

Các trường hợp sử dụng Partial class

– Partial Class giúp được trong trường hợp mà chúng ta cần bổ sung, cập nhật những chức năng cần thiết của một class nhưng lại không thể sửa trực tiếp trong class này. 

Ví dụ khi chúng ta có một class Convert với các method được dùng chung trong cùng một hệ thống để convert các kiểu dữ liệu khác nhau. Sau một thời gian nếu muốn bổ sung thêm các method vào class Convert này nhưng vẫn muốn phải tạo một class mới thì Partial Class sẽ giải quyết tốt được vấn đề này.

/// <summary>  

   /// My first Convert class  

   /// </summary>  

   public static partial class MyConvert  

   {  

     public static int ToInt(string value)  

     {  

       return int.Parse(value);  

     }  

     //other methods  

   }  

   /// <summary>  

   /// My second Convert class  

   /// </summary>  

   public static partial class MyConvert  

   {  

     public static decimal ToDecimal(string value)  

     {  

       return decimal.Parse(value);  

     }  

   }  

Và đây là kết quả:

–  Partial class giúp trong trường hợp để chia class thành nhiều phần có mục đích.

Một phần sẽ được dùng để kế thừa, thực hiện các method của parent class hoặc interface. Một phần sẽ thực hiện việc các khai báo, method của riêng nó. 

Khi chúng ta có một class lớn với hàng trăm, hàng ngàn dòng code hoặc class thì có thể cho phép nhiều người thực hiện cùng một lúc. Khi thực hiện việc thiết kế form trong C#, thì Visual Studio sẽ tiến hành tách Form thành 2 file  “Form1.cs” xử lý nghiệp vụ, events…và “Form1.designer.cs” thực hiện việc khai báo và thiết kế control.

Khi có một partial class Person có thể thực hiện việc khai báo các property và method thì một partial class Person khác sẽ thực hiện việc method Clone từ interface ICloneable.

 namespace chkien0911.PartialClass  

 {  

   public partial class Person  

   {  

     public string Name { get; set; }  

     public DateTime Birthday { get; set; }  

     public int GetAge()  

     {  

       return DateTime.Now.Year – Birthday.Year;  

     }  

   }  

   public partial class Person : ICloneable  

   {  

     /// <summary>  

     /// Implement interface’s method  

     /// </summary>  

     /// <returns></returns>  

     public object Clone()  

     {  

       return this.MemberwiseClone() as Person;  

     }  

   }  

 }  

 

Kết quả sau khi compile:

 

– Sử dụng tính năng vượt trội của Partial class để tạo code tự động bổ xung cho những cái đã mất đi

Trong trường hợp khi sử dụng Entity Framework Database First để tạo ra DbContext mapping với Database thì bạn cần cần tạo lại DbContext giúp cập nhật những cấu trúc mới nhất của Database để DbContext được tạo lại từ đầu, đồng thời xóa tất cả những sự bổ sung trước đó. Bạn sẽ không cần phải làm điều này thường xuyên nếu Partial Class hỗ trợ.

Như vậy Partial class chính là một tính năng phục vụ cho sự hỗ trợ cho thiết kế và tạo code tự động.

Những lưu ý khi sử dụng Partial class

– Sử dụng từ khóa Partial trong khi thực hiện mỗi một Partial Class.

– Partial Class phải có cùng một mức độ truy cập chung.

– Các Partial Class nên được đặt cùng một namespace.

– Các Partial Class nên được đặt trong cùng assembly hoặc cùng module 

– Khi sử dụng công cụ sinh code tự động thì nên để Class làm Partial Class

– Trong trường hợp một phần được tách đã kế thừa từ class/interfaces khác thì những phần khác sẽ được mặc định là đã kế thừa từ class/interfaces đó nên bạn không cần phải thực hiện việc kế lại.

– Nếu một phần được tách trước đó là abstract hoặc sealed thì những phần khác cũng phải thực hiện khai báo abstract hoặc sealed.

Với những chia sẻ xoay quanh các vấn đề về Partial Class như Partial Class là gì? Và sử dụng Partial Class như thế nào? Hy vọng là sẽ giúp bạn có thêm kiến thức để hiểu rõ hơn về Partial Class. Biết đâu bài viết này sẽ giúp ích cho bạn ở một vài công việc trong tương lai. Cám ơn bạn đã dành thời gian để theo dõi bài viết này!

 

Đinh Thao

Đinh Thao

Tôi là Đinh Thị Thao, hiện đang là giáo viên giảng dạy tại trung tâm testerpro và cũng là tác giả chính các bài blog liên quan đến tester, ngành công nghệ thông tin tại trên trang testerpro.vn. Với 5 năm kinh nghiệm làm việc, giảng dậy tại trung tâm thì tôi hy vọng sẽ có thể truyền tải cho các bạn những kiến thức tốt nhất của tester giúp các bạn phục vụ trong công việc của bản thân.

Từ khóa:
Bình luận
Icon Phone Icon Zalo