一个带有问号的好奇C#语法
private enum E_Week { Mon = 0, Tue, . . . }
以下代码是什么意思?
E_Week? week= null;
它是否等于以下代码? ‘?’的function是什么? 在这里签名?
E_Week week= null;
您的代码使用的是所谓的可空类型 。 枚举(很像int或DateTime)就是所谓的“值类型”,它必须始终具有某些值。 可空类型允许您将值类型视为允许空值。
例如,此代码无效且无法编译,因为枚举不能为null:
E_Week week = null;
但是这段代码是有效的:
E_Week? week = null;
它与此完全相同:
Nullable week = null;
E_Week?
相当于Nullable
有关Nullable
类型的更多信息,请参见此处 。
最显着的区别是第二个语句不起作用;)? sign基本上为您提供了将值类型(在本例中为枚举)设置为null的可能性,这通常是不可能的..