为什么以下行有效:
int.Parse("SomeIntegerValue");
但是以下没有:
int?.Parse("SomeIntegerValue");
我认为解析器无法将int?
解析为类型,因此我将其更改为:
(int?).Parse("SomeIntegerValue");
但这也不起作用。更详细的形式也不是:
Nullable<int>.Parse("SomeIntegerValue");
或
(Nullable<int>).Parse("SomeIntegerValue");
最后一个版本告诉我Nullable<int>
是一个类型但是像变量一样使用,但即便是简单的int
也是一个类型,对吗?
答案 0 :(得分:4)
Nullable<T>
是一种通用结构,其中T
可以是任何ValueType,用户定义或其他。
使用Parse()
方法只适用于大约十二种内置数据类型并且对其他所有内容都无用是没有意义的。
答案 1 :(得分:1)
只是因为Nullable<T>
没有Parse()
方法。