2015-11-12 96 views
3

我知道我們不能在嵌套類中使用擴展方法,並且選擇背後的原因非常合理,我不是在這裏討論這種情況。嵌套在靜態類中的類中的擴展方法

是否有設計原因,爲什麼在嵌套在static class中的類中不可能有擴展方法?

是不是因爲這是一個「角落案件」,需要更多的工作,被認爲是無用的?或者還有另一個背後的設計原因?

+0

我正要將此標記爲[「* C#:擴展方法不允許嵌套靜態類?*」](http://stackoverflow.com/q/772351/1364007)的重複,然後我重讀你的問題。 –

+3

[[Eric Lippert回覆此評論]](http://stackoverflow.com/a/3934737/1364007)[[* *爲什麼擴展方法只允許在非嵌套的非泛型靜態類中?*]( http://stackoverflow.com/q/3930335/1364007)。 –

+0

聽起來就像是角落案例......注意,不僅是類本身,而且所有包含類都必須是非泛型的。它可以在邏輯上嵌套在一個非靜態類,雖然... –

回答

2

在這種answer,埃裏克利珀認爲

除非該功能是由一些真實世界的用戶需要正當的,我們不會承擔設計的相當大的成本,實現,測試,記錄並保持該功能。

他接着說,

我們仔細考慮了很長的時間,並決定,審議的基礎上,做了功能的成本(以嵌套的擴展方法,一般的靜態類)沒有理由產生的好處。

但是,您可以提交功能請求here

+2

謝謝大家。現在最好在Roslyn github網站上提交語言設計建議。 –