静态类的TypeAttribute



我正试图通过Reflection.Emit定义一个新类型,但我找不到将该类型定义为静态的TypeAttribute。

例如,假设我想创建以下类型:

public static class Hello
{
}

我可以识别以下属性:

TypeAttributes.Class
TypeAttributes.Public

但是这和有什么不同

public class Hello
{
}

我想添加TypeAttributes.Abstract(因为无法实例化它),但我不确定,因为抽象类完全不同。

您可以使用反射来查看c#编译器在每种情况下会生成什么。

public class Program
{
    public static void Main()
    {
        Console.WriteLine(typeof(StaticClass).Attributes);
        Console.WriteLine(typeof(NotStaticClass).Attributes);
    }
}
public static class StaticClass { }
public class NotStaticClass { }

将产生:

AutoLayout, AnsiClass, Class, Public, Abstract, Sealed, BeforeFieldInit

AutoLayout, AnsiClass, Class, Public, BeforeFieldInit

相关内容

  • 没有找到相关文章

最新更新