它是乙個關鍵字修飾符。可以將類或結構、介面或方法的定義拆分到兩個或更多個原始檔中。 每個原始檔包含型別或方法定義的一部分,編譯應用程式時將把所有部分組合起來。修飾符不可用於委託或列舉宣告中。
在以下幾種情況下需要拆分類定義:
簡單示例
publicpartial
class
test
public
string name
public
void
showage()
");}
}public
partial
class
test
public
void
shownewage()
");}
private
void
changeage()
}class
program
;test.showage();
test.shownewage();
var info = $"
name:,age:";
console.writeline(info);
}}
編譯時會對分部型別定義的屬性進行合併;將從所有分部型別定義中對以下內容進行合併:xml 注釋、介面、泛型型別引數屬性、class 特性、成員
publicclass
testbase
public
inte***ce
itest
[serializableattribute]
public
partial
class
test: testbase
public
string name
public
void
showage()
");}
}[obsoleteattribute]
public
partial
class
test: itest
public
void
shownewage()
");}
private
void
changeage()
}
它們等效於:
[serializableattribute][obsoleteattribute]
public
class
test : testbase,itest
如果將任意部分宣告為抽象的,則整個型別都被視為抽象的。 如果將任意部分宣告為密封的,則整個型別都被視為密封的。
//抽象類示例
public
partial
class
ptest {}
public
abstract
partial
class
ptest
class
program
}//密封類示例
public
partial
class
stest
public
sealed
partial
class
stest
//public class subtest: stest
分部類或結構可以包含分部方法。 類的乙個部分包含方法的簽名。 分部方法宣告由兩個部分組成:定義和實現。
但是它的限制很多,只能在部分場景下使用。
參考:
C partial分部類和分部方法
1 它是乙個關鍵字修飾符。可以將類或結構 介面或方法的定義拆分到兩個或更多個原始檔中。每個原始檔包含型別或方法定義的一部分,編譯應用程式時將把所有部分組合起來。修飾符不可用於委託或列舉宣告中。在以下幾種情況下需要拆分類定義 注意下面這種情況,分部類分別繼承某介面或某類,等同於乙個類繼承該介面和該類。...
分部類(partial class)和分部方法
類的宣告可以分割成幾個分部類的宣告。每個分部類的宣告都含有一些類成員的宣告。類的分部類宣告可以在同一檔案中也可以在不同檔案中。每個區域性宣告必須被標為partial class,而不是單獨的關鍵字class,分部類宣告看起來和普通類宣告相同,除了那個附加型別修飾符partial。分部方法是宣告在分部...
C 分部類和分部方法的使用
將同乙個類編寫在多個檔案中,類的各個檔名不同,類名相同,類名前加partial關鍵字,這種型別叫分部類。在分部類中可以建立分部方法,方法名前加關鍵字partial,分部方法只能將方法分成兩部分,即宣告部分和實現部分分別位於不同的分部類裡。分部方法可以使靜態方法,但必須是隱式的私有方法,並且無返回值的...