int? 是可為null的值類型。只比int多一個值就是null。
思考:
同樣的內(nèi)存空間,怎么實現(xiàn)的多一個值的?都是4字節(jié),32位,int?靠什么存在一個null值的。
發(fā)現(xiàn):
分析一下內(nèi)存,看看如何實現(xiàn)。
當int i = max; int? j = max; 發(fā)現(xiàn)j的下一個4字節(jié)地址的值和i一樣。
給j賦值null,原來的1變?yōu)?.
給j賦值0,原來的0變?yōu)?. j賦值1,還是1. j賦值負數(shù),還是1.
結(jié)果:
斷定int? 原來是8個字節(jié),前4個字節(jié)為1時,不為null。后4個字節(jié)和普通的int類型完全一樣?!?/strong>
int? bool? 這種可空類型的存在意義?
1.為了匹配數(shù)據(jù)庫中對應的類型。
2.有的控件狀態(tài)就是3種。如:checkbox ,選中、未選中、未全選
新聞熱點
疑難解答