使用.NET CodeDOM在一个语句中声明和初始化字段

时间:2008-08-27 04:43:01

标签: .net codedom

我想使用CodeDOM在一个语句中声明和初始化我的静态字段。我怎么能这样做?

// for example
public static int MyField = 5;

我似乎可以弄清楚如何声明一个静态字段,我可以稍后设置它的值,但我似乎无法获得上述效果。

@lomaxx, Naw,我只想要静电。我不想要const。此值可以更改。我只想一举宣告和初始化的简单性。好像编码世界中的任何东西都很简单。每个类型名称长度超过20个字符,最终构建这些巨大的表达式树。让我的眼睛出错。由于resharper的重新格式化,我今天才活着。

3 个答案:

答案 0 :(得分:8)

创建CodeMemberField实例以表示静态字段后,可以将InitExpression属性分配给要用于填充字段的表达式。

答案 1 :(得分:1)

Omer van Kloeten的

This post似乎做你想做的事。请注意,输出具有以下行:

private static Foo instance = new Foo();

答案 2 :(得分:0)

我认为你想要的是一个const而不是静态。我假设您想要的是具有静态只读的效果,这就是为什么您总是希望该值为5。

在c#中,consts的处理方式与readonly static完全相同。

From the c# docs

  

即使考虑了常数   静态成员,一个常数 -   声明既不要求也不要   允许使用静态修饰符。