程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中分部類和分部方法的應用,

C#中分部類和分部方法的應用,

編輯:C#入門知識

C#中分部類和分部方法的應用,


本篇文章介紹了,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 Age
12          {
13              get
14              {
15                  return age;
16              }
17              set
18              {
19                  if (age < 0 || age > 120)
20                      Console.WriteLine("年齡非法");
21                  else
22                      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 PartialClassDemo1
2 {
3     public partial class Person
4     {
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#編譯器會在編譯時刪除其調用語句。

現在我們知道了分部方法有這種特性,但是它有什麼用呢?

使用分部方法允許我們在一個普通方法中插入一個方法占位符,從而為編寫可隨時添加功能的方法提供支持。

分部方法不能有多個實現。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved