使用.NET CodeDOM在一个语句中声明和初始化字段
时间:2020-03-05 18:43:39 来源:igfitidea点击:
我想使用CodeDOM在一个语句中声明和初始化我的静态字段。我怎样才能做到这一点?
// for example public static int MyField = 5;
我似乎可以弄清楚如何声明一个静态字段,以后可以设置其值,但似乎无法获得上述效果。
@lomaxx,
w,我只想静态。我不要const。此值可以更改。我只是想一口气声明和初始化的简单性。似乎在密码世界中,任何事情都很简单。每个类型名称的长度都超过20个字符,最终我们将构建这些巨大的表达式树。使我的眼睛虫。今天我还活着,这要归功于Resharper的重新格式化。
解决方案
回答
创建代表静态字段的CodeMemberField实例后,可以将InitExpression属性分配给要用于填充字段的表达式。
回答
Omer van Kloeten的这个帖子似乎可以满足要求。请注意,输出中包含以下行:
private static Foo instance = new Foo();
回答
我认为我们想要的是const而不是static。我假设我们想要的是具有静态只读的效果,这就是为什么我们始终希望该值为5的原因。
在cconst中,将其与只读静态变量完全一样。
从cdocs:
Even though constants are considered static members, a constant- declaration neither requires nor allows a static modifier.