【发布时间】:2013-04-09 20:58:42
【问题描述】:
我的旧代码有这个:
if (chgList != ABCHeader.ChangeListTypes.Always)
这是 ABCHeader - 它是一个类(不是变量),并且是一个非静态类:
public class ABCHeader
{
. . .
public enum ChangeListTypes
{
...
}
chgList 是这样定义的:
private ABCHeader.ChangeListTypes chgList = ABCHeader.ChangeListTypes.Always;
这显然可以编译,但在我看来,这个非静态类 (ABCHeader) 以这种方式被引用并不正确。因为我在这段代码的某处有一个奇怪的空引用异常,所以我翻阅了我偶然发现的代码。这是一个潜在的问题,还是我肯定找错了树?
【问题讨论】:
-
看起来不错,不过你应该把你的赋值放在构造函数中
-
@bash.d,为什么要在构造函数中赋值?
-
只是一个约定,通常你只是这样分配 const 成员。
-
@bash.d,嗯,没有。使用C# field initializer syntax 初始化字段值是非常 标准。 (通常它甚至不需要有一个构造函数)
标签: c# class static enums instantiation