本来我有这样的印象,NULL是引用类型,因为它被赋值给引用,然后遇到这个概念称为可空值类型,这使得我的理论处于尴尬的境地,那么地球上的NULL值类型的引用类型呢?
Eri*_*ert 16
在这一点上,C#规范是明确的:null关键字表示没有类型的表达式.它既不是引用类型,也不是值类型,也不是指针类型.但是,该表达式可以转换为所有这些类型.不要求编译器将所有表达式分类为具有类型,实际上并非如此.
现在,您可以在运行时询问空引用的类型是什么,可空值类型的空值的类型是什么,以及空指针的类型是什么.答案是:
null引用没有类型.如果你有一个可以装巧克力的盒子,那么问这个空盒子里的巧克力是什么牌子是毫无意义的." 缺少的巧克力没有品牌; null引用没有类型.
类似地,空指针的类型也不是任何东西; 空指针值不指向任何内容.如果你有一张地址为1600宾夕法尼亚大道的纸,你可以问"这个地址的房子颜色是什么",并得到答案:白色.如果你有一张白纸,询问那个地址的房子颜色是什么,不能得到任何有用的答案.
可空值类型的空值是可空值类型的值.
| 归档时间: |
|
| 查看次数: |
1753 次 |
| 最近记录: |