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

王朝学院·作者佚名  2016-05-20
窄屏简体版  字體: |||超大  

[C#] 可空类型的实现原理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 ,选中、未选中、未全选

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航