[Csharp]可为空的类型
[Csharp]可为空的类型
一句话总结
值类型的不能?
操作符的是通过Nullable<T>
包装实现的,而引用类型由于本来就可以为空,所以?
操作符只是个供编译器推断的标识而已。
参考资料
1 |
|
可空值类型
一句话总结:int?
和int
是两个不一样的类型,int?
其实是Nullable<int>
的语法糖,因为值类型是直接指向具体值的,因此不能直接被指向null,必须经过包装。
1 |
|
可空引用类型
一句话总结:BaseWsRequest<object>?
和 BaseWsRequest<object>
其实是同一个类型,string
和string?
也一样。因为他们都是引用类型,可以指向null,因此编译器并不会对他们额外进行包装。
1 |
|