我正在尝试通过Reflection.Emit定义新类型,但我无法找到将TypeAttribute定义为static类型的{{3}}。
例如,让我们说我想创建以下类型:
public static class Hello
{
}
我可以识别以下属性:
TypeAttributes.Class
TypeAttributes.Public
但与
有何不同public class Hello
{
}
我想也许可以添加TypeAttributes.Abstract
(因为无法实例化它),但我对此并不确定,因为抽象类完全不同。
答案 0 :(得分:3)
您可以使用反射来查看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