標籤:
本篇文章介紹了,C#中部分類別和分部方法的應用。需要的朋友參考下
部分類別(Partial Class)在C#2.0引入,分部方法(Partial Method)在C#3.0引入,這兩個文法特性都具有相同的特性:將類(或)方法的代碼分散在多個地方。
1.部分類別的特性和應用
1.1部分類別的定義
在定義一個類時,加上partial關鍵字,此類即成為部分類別。
部分類別允許將一個類的代碼分散於一個以上的原始碼檔案中。
Person.cs代碼如下
1 namespace PartialClassDemo1 2 { 3 public partial class Person 4 { 5 private int age; 6 Person(int age, string name) 7 { 8 this.age = age; 9 this.name = name;10 }11 public int Age12 {13 get14 {15 return age;16 }17 set18 {19 if (age < 0 || age > 120)20 Console.WriteLine("年齡非法");21 else22 this.age = Age;23 }24 }25 static void Main(string[] args)26 {27 Person p = new Person(19,"張三");28 Console.WriteLine(p.Age);29 Console.ReadKey();30 }31 }32 }
Person2.cs代碼如下
1 namespace PartialClassDemo12 {3 public partial class Person4 {5 private string name;6 }7 }
使用部分類別時,需要注意一下原則:
(1)所有的需要“合并”的類必須都用partial關鍵字聲明。
(2)所有的需要“合并”的類必須位於同一個項目中。
2.為什麼要引入部分類別
部分類別主要用於隔離來源不同,功能不同或者類型不同的原始碼
另外分布特性還可以用具結構和介面
3.分布方法的特性和應用
分布方法允許將方法聲明與方法實現代碼分佈於不同的檔案中。與部分類別類似,使用partial關鍵字定義分部方法。
1 partial void show(string str);2 partial void show(string str)3 {4 Console.WriteLine(str+"再見");5 }
分布方法不能具有存取修飾詞或virtual、abstract、override new sealed 或者extern修飾符
partial修飾符只能出現在緊靠class struct interface void前面的位置
當分部方法沒有實現代碼時,C#編譯器會在編譯時間刪除其調用語句。
現在我們知道了分部方法有這種特性,但是它有什麼用呢?
使用分部方法允許我們在一個普通方法中插入一個方法佔位符,從而為編寫可隨時添加功能的方法提供支援。
分部方法不能有多個實現。
C#中部分類別和分部方法的應用