C#分部方法的語法
在看C#語言的What's New時,突然發現新特性列表的最後,多出了一個“Partial Method Definitions”,但並不像其他新特性一樣有超鏈接鏈接到其說明。上網搜索了一下,關於分部類型的信息非常少。尤其是中文信息,英文技術文章中,倒是有兩篇不錯的:http://blogs.msdn.com/wesdyer/archive/2007/05/23/in-case-you-haven-t-heard.ASPx和http://community.bartdesmet.Net/blogs/bart/archive/2007/07/28/c-3-0-partial -methods-what-why-and-how.ASPx。
又仔細看了一下MSDN Library for Visual Studio 2008 Beta 2,終於對這個語言特性有所了解,在這裡介紹一下,希望對大家有所幫助。
分部方法的定義和分部類型類似,只需在方法定義前添加partial關鍵字。但分部方法只能拆分成兩個部分——一部分是定義聲明(Definition Declaration),另一部分是實現聲明(Implement Declaration)。其中定義聲明看上去和抽象方法類似:
partial class CA
{
// ……
private void partial M(); // 定義聲明|
而實現聲明看上去和普通方法類似:
private void partial M() // 實現聲明
{
// 方法體
}
在調用分部方法時,和調用其他方法一樣:
CA a = new CA();
a.M();
只是,如果只有定義聲明而沒有編寫實現聲明,則編譯器不會發射(Emit)該方法和調用該方法的語句的元數據與IL代碼。換言之,如果沒有編寫實現聲明,則編譯得到的程序集中,CA類型裡並沒有M這個方法。
使用分部方法的注意事項
分部方法的語法非常簡單,但有一些事項要注意。