在c#中,值类型不能具有null
值,但是您可以通过添加问号来启用它。
例如
int intCannotBeNull = 1;
int? intCanBeNull = null;
此外,在C#中,许多值类型都有
static
成员,因此您可以执行以下操作:string strValue = "123";
intCannotBeNull = int.Parse(strValue);
但是,您不能执行以下任一操作:
intCanBeNull = int?.Parse(strValue);
intCanBeNull = (int?).Parse(strValue);
C#感到困惑。是否有一种有效的语法表示
strValue
可以是null
或有效的整数值,并且可以进行赋值?我知道有一些简单的解决方法,例如:
intCanBeNull = (strValue == null) ? null : (int?)int.Parse(strValue);
和同一件事的其他变体,但这只是一团糟...
最佳答案
int?
是Nullable<int>
的语法糖。您正在询问Nullable<int>.Parse
。没有这种方法。那就是你的困惑所在。
关于c# - 可为null的类型的静态成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27359761/