嵌套在静态类中的类中的扩展方法

时间:2015-11-12 14:44:44

标签: c# extension-methods

我知道我们不能在嵌套类中使用扩展方法,这种选择背后的原因很有意义,我不是在这里讨论这个案例。

是否存在设计原因导致在static class嵌套的类中无法使用扩展方法?

public static class MyClass1
{
    public static class MyClass2
    {
        public static int Add(this int a, int b) //Doesn't compile
        {
            return a + b;
        }
    }
}

仅仅是因为它是一个需要更多工作而且被认为无用的“角落案例”吗?或者这背后有另一个设计理由吗?

1 个答案:

答案 0 :(得分:2)

在此answer中,Eric Lippert认为

  

除非某些实际用户需要该功能是合理的,否则我们不会承担设计,实施,测试,记录和维护该功能的相当大的成本。

他继续说

  

我们认真考虑了很长时间,并认为在此考虑的基础上,执行该功能的成本(嵌套的,通用的静态类中的扩展方法)并没有被所产生的收益证明是合理的。

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