private enum E_Week
{
Mon = 0,
Tue,
. . .
}
以下代码是什么意思?
E_Week? week= null;
它是否等于以下代码? '?'的功能是什么?在这里签名?
E_Week week= null;
答案 0 :(得分:29)
您的代码使用的是nullable type。枚举(很像int或DateTime)就是所谓的“值类型”,它必须始终具有某些值。 Nullable类型允许您将值类型视为允许空值。
例如,此代码无效且无法编译,因为枚举不能为null:
E_Week week = null;
但是这段代码是有效的:
E_Week? week = null;
它与此完全相同:
Nullable<E_Week> week = null;
答案 1 :(得分:16)
E_Week?
相当于Nullable<E_Week>
有关Nullable
类型的详情,请参阅here。
答案 2 :(得分:5)
最显着的区别是第二个陈述不起作用;)? sign基本上可以让你将值类型(在本例中为enum)设置为null,这通常是不可能的。