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

Đinh Thao

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? Vậy partial class là gì và cách sử dụng nó trong C# như thế nào? Bạn hãy cùng Testerpro đi tìm hiểu vấn đề này trong bài viết dưới đây nhé!

Partial class là gì?

partial class

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.

Đọc thêm : PRINT PHP LÀ GÌ? SỰ KHÁC BIỆT GIỮA ECHO VÀ PRINT

Sử dụng Partial class trong C#

Partial Class 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ậy Testerpro đã vừa giải thích cho bạn Partial Class là gì và cách sử dụng partial class trong C# 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ề tính năng 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!

5/5 - (1 bình chọn)
Từ khóa:
Bình luận
Icon Phone