花时间研究了下C#的源码,发现了点一起不清晰的东西,分享出来
问题1:int? i =null;为什么可以把null赋值给值类型
首先,并不存在可为空的值类型
可为空的值类型
Nullable
Nullable
int? i =null;
代码做了1件事
1.判断赋值为null时直接返回new Nullable
CLR在对Nullable
问题2: int? i = 3; i.GetType();//为什么返回 int32
Nullable
相当于 int? i=3; object a=i; a.GetType();
所以是Int32