2015-11-12 143 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网站上提交语言设计建议。 –