1

'タイプインスタンス'の拡張メソッドを作成できないのはなぜだろうか。この機能が提供されていれば、たとえば静的クラスを「拡張」することが可能でした。

例:

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

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

1 に答える 1

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

于 2012-10-15T18:50:55.670 に答える