標籤: 暫無標籤

  
含義及功能




  


  在C# 1.x中,要求類中所有的代碼必須集中在一起,放在一個文件夾中。雖然這種在一個文件中維護一個類的所有代碼,是一項比較好的編程要求,但是在某些情況下,例如,類變得很複雜,代碼很冗長,這種編程要求就成為了一個不切實際的約束。另外,開發人員經常使用代碼生成器來生成一個應用程序的初始結構,然後修改產生的代碼。不幸的是,當以後需要再次發布源代碼的時候,現存的修正會被重寫。


  為了解決以上的問題,C# 2.0中提供了一種新的技術特性——局部類。局部類允許類、結構和介面被分成多個小塊兒並存儲在不同的源文件中,這樣的實現很容易開發和維護。另外,局部類可以分離代碼生成器產生的代碼和開發人員書寫的代碼,這使得利用工具來加強產生的代碼變得容易。實現局部類,即在多個部分中定義一個類時,必須使用新的partial關鍵字來標註分割,這樣可以將局部類的一部分放在一個源文件中,而將局部類的另一部分放在不同的源文件中。


  

示例




  


  在下面的示例中,一個局部類的實現代碼被分成兩個部分,放置在兩個不同的源文件中。另外,代碼的第一部分是由代碼產生器生產的,而第二部分是開發人員手工編寫的。


  第一部分代碼如下所示:


  public partial class Customer


  {


  private int id;


  private string name;


  private string address;


  private List<Order> orders;


  public Customer()


  {


  ...


  }


  }


  第二部分代碼如下所示:


  public partial class Customer


  {


  public void SubmitOrder(Order order)


  {


  orders.Add(order);


  }


  public bool HasOutstandingOrders()


  {


  return orders.Count > 0;


  }


  }


  第一部分代碼由代碼生成器創建,主要包括的是程序代碼的結構。第二部分代碼是開發人員手工編寫,主要是一些業務邏輯的實現。由於二者都使用partial關鍵字和類名Customer,因此,兩部分都稱為局部類Customer。這種實現方法在保證代碼結構的同時,使得代碼更加清晰和易於維護。

上一篇[序同構]    下一篇 [分圓域]

相關評論

同義詞:暫無同義詞