只是一个简单的观察。该属性MethodBase.IsConstructor
不适用于static
构造函数,并且文档没有提到这一事实(引用:“如果此方法是由对象表示的构造函数,则为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");
}
}
问:为什么?错误或不完整的规范?