静态类的TypeAttribute

我正在尝试通过Reflection.Emit定义新类型,但是我找不到设法将类型定义为staticTypeAttribute.

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

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 { }

将产生:

自动布局,AnsiClass,类,公共,抽象,密封,BeforeFieldInit

自动布局,AnsiClass,类,公共,BeforeFieldInit

上一篇:基于C#中给定对象类型的动态列表创建


下一篇:c#-将简单对象转换为简单通用接口