4

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

// for example
public static int MyField = 5;

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

@lomaxx,Naw,我只想要静态的。我不想要常量。这个值可以改变。我只是想要一举宣布和初始化的简单性。好像密码世界中的任何事物都很简单。每个类型名称都有 20 多个字符长,您最终会构建这些巨大的表达式树。弄得我眼睛瞎了。由于 resharper 的重新格式化,我今天才活着。

4

3 回答 3

8

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

于 2008-08-27T04:45:27.617 回答
1

Omer van Kloeten 的这篇文章似乎可以满足您的需求。请注意,输出具有以下行:

private static Foo instance = new Foo();
于 2008-08-27T04:48:30.150 回答
0

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

在 c# 中,const 被视为与只读静态完全相同。

来自 c# 文档

即使常量被认为是静态成员,常量声明既不需要也不允许静态修饰符。

于 2008-08-27T04:53:33.227 回答