熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

.NET 分部方法

2013-11-13 09:55:51  來源: .NET編程 

  分部方法

  分部類或結構可以包含分部方法 類的一個部分包含方法的簽名 可以在同一部分或另一個部分中定義可選實現 如果未提供該實現則會在編譯時移除方法以及對方法的所有調用

  分部方法使類的某個部分的實施者能夠定義方法(類似於事件) 類的另一部分的實施者可以決定是否實現該方法 如果未實現該方法編譯器將移除方法簽名以及對該方法的所有調用 調用該方法包括調用中的任何計算結果在運行時沒有任何影響 因此分部類中的任何代碼都可以隨意地使用分部方法即使未提供實現也是如此 如果調用了未實現的方法將不會導致編譯時錯誤或運行時錯誤

  在自定義生成的代碼時分部方法特別有用 這些方法允許保留方法名稱和簽名因此生成的代碼可以調用方法而開發人員可以決定是否實現方法 與分部類非常類似分部方法使代碼生成器創建的代碼和開發人員創建的代碼能夠協同工作而不會產生運行時開銷

  分部方法聲明由兩個部分組成定義和實現 它們可以位於分部類的不同部分中也可以位於同一部分中 如果不存在實現聲明則編譯器將優化定義聲明和對方法的所有調用

  限制條件

  分部方法聲明必須以上下文關鍵字 partial 開頭並且方法必須返回 void

  分部方法可以有 ref 參數但不能有 out 參數

  分部方法為隱式 private 方法因此不能為 virtual 方法

  分部方法不能為 extern 方法因為主體的存在確定了方法是在定義還是在實現

  分部方法可以有 static 和 unsafe 修飾符

  分部方法可以為泛型的約束將放在定義分部方法聲明上但也可以選擇重復放在實現聲明上參數和類型參數名稱在實現聲明和定義聲明中不必相同

  您可以為已定義並實現的分部方法生成委托但不能為已經定義但未實現的分部方法生成委托

  代碼示例

  partial void onNameChanged(); partial void onNameChanged(){}


From:http://tw.wingwit.com/Article/program/net/201311/12011.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.