將同乙個類編寫在多個檔案中,類的各個檔名不同,類名相同,類名前加partial關鍵字,這種型別叫分部類。
在分部類中可以建立分部方法,方法名前加關鍵字partial,分部方法只能將方法分成兩部分,即宣告部分和實現部分分別位於不同的分部類裡。分部方法可以使靜態方法,但必須是隱式的私有方法,並且無返回值的方法,因為分部方法時私有方法,所以無法使用virtual修飾符,即不能成為虛方法;分部方法可以有ref引數,但不能有out引數;不允許將委託轉換為分部方法。
下例中首先建立專案partialtypes,主類檔案為program.cs,在專案中新增乙個類檔案singerdefine.cs,類名為singer,再新增另乙個類檔案singerimp.cs,類名為singer。類名前都加partial修飾符
singerdefine.cs檔案裡宣告兩個私有欄位和兩個分布方法,方法名前加關鍵字partial,**如下:
[c-sharp] view plain
copy
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace partialtypes
} singerimp.cs檔案裡,包含分部方法的實現部分,分部方法組合成乙個新方法,定義兩個屬性對私有字段進行讀寫,**如下:
[c-sharp] view plain
copy
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace partialtypes
】,資料型別是【】", str.tostring(), str.gettype());
} partial void getmsgb(int i)
】,資料型別是【】", i.tostring(), i.gettype());
} //宣告getmsg方法,呼叫兩個分部方法
internal void getmsg(string str, int i)
//宣告兩個屬性,用於讀取和寫入兩個私有字段
internal string cn
set
} internal string am
set
} } }
主程式檔案呼叫分部類,及分部方法,**如下:
[c-sharp] view plain
copy
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace partialtypes
,am=", sin.cn, sin.am);
//呼叫getmsg方法
sin.getmsg("中美合作", 50);
} }
} 執行結果:
分部類(partial class)和分部方法
類的宣告可以分割成幾個分部類的宣告。每個分部類的宣告都含有一些類成員的宣告。類的分部類宣告可以在同一檔案中也可以在不同檔案中。每個區域性宣告必須被標為partial class,而不是單獨的關鍵字class,分部類宣告看起來和普通類宣告相同,除了那個附加型別修飾符partial。分部方法是宣告在分部...
c partial 分部類和分部方法
它是乙個關鍵字修飾符。可以將類或結構 介面或方法的定義拆分到兩個或更多個原始檔中。每個原始檔包含型別或方法定義的一部分,編譯應用程式時將把所有部分組合起來。修飾符不可用於委託或列舉宣告中。在以下幾種情況下需要拆分類定義 簡單示例 public partial class test public st...
C partial分部類和分部方法
1 它是乙個關鍵字修飾符。可以將類或結構 介面或方法的定義拆分到兩個或更多個原始檔中。每個原始檔包含型別或方法定義的一部分,編譯應用程式時將把所有部分組合起來。修飾符不可用於委託或列舉宣告中。在以下幾種情況下需要拆分類定義 注意下面這種情況,分部類分別繼承某介面或某類,等同於乙個類繼承該介面和該類。...