码迷,mamicode.com
首页 > Windows程序 > 详细

[c#] 可空类型的实现原理

时间:2015-07-04 15:15:53      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:

  int? 是可为null的值类型。只比int多一个值就是null。

  

思考:

  同样的内存空间,怎么实现的多一个值的?都是4字节,32位,int?靠什么存在一个null值的。

 

发现:

  分析一下内存,看看如何实现。

  当int i = max;  int? j = max;  发现j的下一个4字节地址的值和i一样。

  技术分享

 

  给j赋值null,原来的1变为0.

  技术分享

 

  给j赋值0,原来的0变为1. j赋值1,还是1. j赋值负数,还是1.

  技术分享

 

结果:

断定int? 原来是8个字节,前4个字节为1时,不为null。后4个字节和普通的int类型完全一样。  

 

int? bool? 这种可空类型的存在意义

1.为了匹配数据库中对应的类型。

2.有的控件状态就是3种。如:checkbox ,选中、未选中、未全选

[c#] 可空类型的实现原理

标签:

原文地址:http://www.cnblogs.com/neverc/p/4620628.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!