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