你的这段代码 其实已经默认了nint32型。
最后我一直认为可空类型最打的优势是用来解决关系数据库映射的。在你加上之后,你可以看看你现在number是什么类型。应该是null类型而不是int32类型。所以能不赋予null值的不是值类型。

我觉得上面由于错误的论据得到了错误的结论。下面是我对于上面论据错误的看法,如果有不同意见我们可以继续讨论:

1.你通过GetType()和参数传递的特征来说明int?是int32类型,你后面的也提到了 int?类型其实是泛型。当你用int型去初始化泛型的时候,你用GetType得到的当然是int32

2.int number = new Nullable<int>()这段代码不知道你有没有运行过。这很明显是不能通过编译的。

3.
Int32? n = 5; 
Int32 result = ((IComparable) n).CompareTo(5); 
Console.WriteLine(result);
而且我上面提到的几点问题,如果你赋值为null就会发现都有错误。因为你用int32赋值的时候,这个泛型已经是int32型了。
int? number = new Nullable<int>();
number
变量的值居然是null
这是我上面正文写的文字,我没有说被赋值为null的时候,还能通过GetType得到它是Int32类型。任何一个对象,当你把它赋值为null的时候,他就是null

而且我上面提到的几点问题,如果你赋值为null就会发现都有错误
这句话你说的太对了,我们都知道的,呵呵,如果你一个对象是null值,而你偏要访问它的属性、字段或者函数,就会抛出未将对象引用到对象的实例的异常。

可空类型的实例赋值null的时候,其实只是将其HasValue字段赋值为false而已,并不是真正的成为null,因为值类型是不存在null这样一种状态的,而至于null”的那种可空类型实例访问其方法时,情况稍复杂,对于像ToString()因为方法重写并不会抛出异常,而调用GetType()则会抛出异常,是因为装箱结果为null引起的。

 


下一篇: 灵活的粘合层
上一篇: 算法即解决问题的办法?
标签:

欢迎转载,转载时必须以链接形式注明来自 【南京典乐科技】
专业服务:南京网站建设,南京网站制作,南京网站设计,南京网站制作公司
咨询电话:13851941123(7*24小时在线服务)
公司网址:本文地址:http://m.025app.com/news/detail_217.html

 
公司简介 | 联系我们 | 知识中心
Copyright © 南京典乐科技 版权所有
苏ICP备12085975号
首页
咨询电话
联系我们