为什么没有可能为'type instance'创建扩展

时间:2012-10-15 18:19:30

标签: c# .net

我想知道为什么不能为'type instance'创建扩展方法。如果已经提供了这个功能,那么就可以“扩展”静态类。例如。

示例:

public static class A
{
  public static void Method()
  {
  }
}

public static class AExtensions
{
  public static void Method2(this static A a)
  {
      // something
  }
}

1 个答案:

答案 0 :(得分:1)

当然,真正的答案是:开发此类功能的成本远远超过潜在的好处。

然而,只要想一想。你真的会从这个功能中获得什么?你已经可以完全合法地做到这一点,这有效地“扩展”了静态类。

// 3rd party library
public static class A {
  public static void Method() {
  }
}

// my source code
public static class AExtensions {
  public static void Method2() {
  }
}

如果您认为通过扩展课程A,您将以某种方式获得对其所有internalprivate成员的访问权限,那么您将无法做到这一点,它会破坏封装。你不能用实例扩展方法做到这一点。