[英]Generate a typed enum in C# using CodeDom
我试图弄清楚如何使用CodeDom(在C#中)生成类型化的枚举。
具体来说,形式如下:
// Create an enum that supports long integer values.
enum Days : long {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
我可以通过将CodeTypeDeclaration上的IsEnum属性设置为true来轻松地生成常规枚举,但是我需要将一些成员值初始化为不适合int类型的数字(这似乎是C#中枚举的默认值) 。
任何帮助将非常感激!
编辑:对于正在寻找有关如何创建基本枚举的信息的任何人:
CodeTypeDeclaration enumType = new CodeTypeDeclaration("MyEnum");
enumType.Members.Add(new CodeMemberField("MyEnum", "First"));
enumType.Members.Add(new CodeMemberField("MyEnum", "Second"));
enumType.Members.Add(new CodeMemberField("MyEnum", "Third"));
InitExpression属性可用于设置每个枚举成员的实际值。
您可以通过使用BaseTypes
属性为Enum添加基本类型,如下所示:
CodeTypeDeclaration enumType = new CodeTypeDeclaration("MyEnum");
enumType.IsEnum = true;
enumType.BaseTypes.Add(typeof(long));
enumType.Members.Add(new CodeMemberField("MyEnum", "First"));
enumType.Members.Add(new CodeMemberField("MyEnum", "Second"));
enumType.Members.Add(new CodeMemberField("MyEnum", "Third"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.