我知道它可以讓Visual Studio從UI事件等中分離出WinForms UI代碼,但是它有任何實際用途嗎?C#中部分關鍵字的實際用法
回答
部分關鍵字通常用於代碼生成實用程序中,以允許開發人員向生成的代碼添加其他功能,而不用擔心如果代碼再次生成時該代碼被擦除。
使用C#3,可以將partial關鍵字應用於方法,以允許生成的代碼的用戶填充生成器留下的空白。例如,Linq To Sql設計器提供了部分方法,允許您將邏輯添加到框架在實現時調用的類中。這樣做的好處是,C#編譯器將完全刪除未實現的部分方法,因此沒有執行它們,因此在所有上都沒有性能。
部分類也可以用於將非常大的類組織成單獨的代碼文件,雖然這種用法通常表明您的類太大並且承擔了太多的責任。
我用它來分區助手類,其中一些方法需要大量的代碼。這是保持可讀性的一種簡單方法,因爲每個文件只處理類的一部分功能。
LINQ to SQL設計器廣泛使用它來分割映射類之外的自定義行爲(部分方法)。
簡而言之,它的主要用途是代碼生成器。
希望這會有所幫助。
在VB中,您可以使用它將「正常」代碼與需要通過「Option Strict Off」進行後期綁定的代碼分開。
在C#中,我只將它用於非常大的類。
我能想到的partial關鍵字的最佳用法是嵌套類。如果沒有partial關鍵字,則所有嵌套類必須與包含類位於相同的代碼文件中。
我一直使用Linq2Sql的部分類和方法。否則,除了UI /代碼隱藏類以外,我從未使用過它。
我喜歡關於linq2sql中的部分類的好處之一是,您可以讓部分類繼承一個接口,並將接口映射到生成的類。如果您擁有多個數據提供者並且仍然希望爲所有數據訪問類使用相同的接口,那麼這非常棒。
我發現的一種用法是,您可能不希望存在於生產代碼中的代碼,例如跟蹤或開發日誌代碼。你可以把它放在分部類中,然後當你做一個生產構建時,你只需構建沒有包含這些分部的東西,編譯器就會自動地魔術般去掉對那些被排除的部分的調用。
部分方法可能對那個特定的用例更好。 – JasonTrue 2009-03-04 23:28:18
WPF廣泛使用部分類。 XAML生成可添加到的部分類。
當我知道我們將有幾個開發人員在一個類上工作時,我使用部分類來減少版本控制的合併痛苦。例如,我們經常將我們的DAL類拆分成幾個分部類文件。如果你不把它們放在不同的文件中,那麼很容易就會遇到合併衝突,在檢入版本ctl時需要一段時間才能修復。
當開發變得越來越混亂,因爲類接近完成,我們擺脫了部分文件。我們只是用它來使VC/mulit-developer問題更容易
- 1. C#中「內部」關鍵字的實際用法
- 2. `stackalloc`關鍵字的實際用法
- 3. 關鍵字「內容」在Google Adwords API中代替實際的關鍵字
- 4. 部分關鍵字搜索
- 5. 查找從關鍵字到關鍵字的字符串部分
- 6. C++關鍵部分不起作用
- 7. c#中虛函數的實際用法
- 8. MPI中的關鍵部分?
- 9. C99'restrict'關鍵字的現實用法?
- 10. python中的導入關鍵字如何實際工作?
- 11. C#鎖關鍵字的用法
- 12. 新關鍵字的真實用法隱藏虛擬方法實現? c#
- 13. Javascript關閉的實際用法/示例
- 14. 輪詢鎖是否實現關鍵部分的正確方法?
- 15. 'this'關鍵字實際引用了什麼類型?
- 16. 關鍵字Set在VBA中實際做了什麼?
- 17. 在Perl中關鍵字`no`實際上做了什麼?
- 18. 包含另一個關鍵部分的關鍵部分?
- 19. c中的「HANDLE」關鍵字
- 20. 同步關鍵字內部實現
- 21. C#方法,使用params關鍵字
- 22. 在ANTLR語法中使用不同的關鍵字關鍵字
- 23. 在C++中使用C關鍵字
- 24. 有沒有實現C++的自動關鍵字的方法03
- 25. c#關鍵字
- 26. python部分與關鍵字參數
- 27. 部分關鍵字搜索(MS SQL 2005)
- 28. Sphinx搜索:部分關鍵字
- 29. 輪胎不搜索部分關鍵字
- 30. 關鍵部分無法在onSensorChanged()
Oo,絕妙的主意!我從未想過要這樣做。 – 2009-03-04 23:02:21