2

簡単な観察です。このプロパティMethodBase.IsConstructorstaticコンストラクターでは機能せず、ドキュメントではこの事実について言及されていません (引用: 「このメソッドがオブジェクトによって表されるコンストラクターである場合はtrueConstructorInfo」)。

サンプル:

static class Program
{
  static void Main()
  {
    ConstructorInfo ci = typeof(Test).GetConstructor(
        BindingFlags.NonPublic | BindingFlags.Static, null, new Type[] { }, null);
    Console.WriteLine(ci is ConstructorInfo); // silly; writes True
    Console.WriteLine(ci.IsConstructor);      // ??     writes False
  }
}

static class Test
{
  static Test()
  {
    Console.WriteLine("I am your static constructor");
  }
}

質問: なぜですか? バグまたは不完全な仕様?

4

1 に答える 1