繁体   English   中英

使用CodeDom在C#中生成类型化的枚举

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM