6
A
回答
8
在對象的實例上調用擴展方法。
myObj.ExtensionMethod();
如果你有一個靜態類,你不能有它的一個實例。因此,沒有什麼可以調用擴展方法。
5
因爲設計中的extension method必須將它正在擴展的類的實例作爲其第一個參數進行擴展。顯然你不能傳遞一個文件的實例,因爲它是一個靜態類,不能有實例。
5
反過來說,如果您查看definition of any extension method,則第一個參數始終是關鍵字this
所證明的對象的實例。邏輯上,這種行爲不能在靜態類上工作,因爲沒有實例存在。
擴展方法的樣本 - 看到第一個參數此
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' }, StringSplitOptions.RemoveEmptyEntries).Length;
}
}
0
我爲什麼不能創建靜態類擴展方法?
因爲C#dev團隊沒有實現該功能(還)。 F# has chosen to implement it雖然。
擴展屬性相同的東西。 F#有他們和Boo has had them since (at least) 2006。
相關問題
- 1. 爲什麼動態類型的擴展方法無法解決?
- 2. 擴展方法擴展靜態類
- 3. 爲什麼無法創建擴展OnTouchListener的類
- 4. 爲什麼foreach無法找到我的GetEnumerator擴展方法?
- 5. 爲什麼作爲擴展方法
- 6. 擴展方法和靜態方法有什麼區別?
- 7. 擴展/重寫Eloquent創建方法 - 不能使靜態方法非靜態
- 8. 更改基於擴展類的父類方法行爲(靜態)
- 9. 如何爲動態類型創建MVC擴展方法
- 10. 爲什麼我無法在我的活動類中擴展AppCompatActivity?
- 11. 擴展方法vs靜態工具類
- 12. 靜態方法與類擴展android.app.Application?
- 13. 爲什麼必須在靜態類中定義C#擴展方法?
- 14. 無法爲Postgres創建擴展
- 15. 如何爲ToString創建擴展方法?
- 16. 爲DataGrid創建擴展方法=> AutoScroll?
- 17. 爲什麼可以調用非靜態類的靜態方法?
- 18. 如何在VB.NET中爲靜態類編寫方法擴展?
- 19. Ruby on Rails:爲什麼我的類擴展無法識別?
- 20. 爲什麼我們不需要爲靜態方法創建對象?
- 21. 爲什麼我的擴展方法會導致類型錯誤?
- 22. 爲什麼@decorator不能裝飾靜態方法或類方法?
- 23. 爲什麼靜態創建方法存在?
- 24. 擴展方法VS靜態方法解析 - 我在spec中錯過了什麼?
- 25. 爲什麼Stream.CopyTo不是擴展方法?
- 26. MEF爲什麼ComposePart是擴展方法?
- 27. 爲什麼要使用擴展方法?
- 28. 爲什麼我必須使用「this」從擴展類中調用擴展方法?
- 29. 爲什麼我無法創建日曆?
- 30. 爲什麼我無法創建2D ArrayList?
感謝您的回答。這是一個恥辱,但不是一個巨大的損失。 – dotnetdev 2010-03-07 23:52:39