数组中成员的默认值是多少?
我像这样实例化一个数组:
int array[] = new int[4];
这四个成员的默认值是什么? 它是null,0还是不存在?
它为0.它不能为null,因为null不是有效的int
值。
从C#5规范的第7.6.10.4节:
新数组实例的所有元素都初始化为其默认值(第5.2节)。
从第5.2节开始:
变量的默认值取决于变量的类型,并确定如下:
初始化为默认值通常通过让内存管理器或垃圾收集器在分配使用之前将内存初始化为所有位为零来完成。 因此,使用all-bits-zero来表示空引用是很方便的。
(作为一个实现细节,第一个要点周围有一些棘手的问题。虽然C#本身不允许你为值类型声明一个无参数构造函数,但你可以为IL中的值类型创建自己的无参数构造函数。我不相信这些构造函数在数组初始化中调用,但它们将在C#中的new X()
表达式中调用。但它确实超出了C#规范的范围。)
类型T
的自动初始化变量的默认值(例如数组元素或实例字段default(T)
与default(T)
的值相同。 对于引用类型和指针类型,它为null。 对于数字类型,它是该类型的零。 对于布尔来说,这是错误的。 对于struct类型,它是struct值,其所有字段都初始化为其默认值。
从数组(C#编程指南) :
数值数组元素的默认值设置为零,引用元素设置为null。
整数不能为NULL
。 它们的值为’0’。 即使您尝试从代码中为int
分配NULL
,您也无法执行此操作。
上述就是C#学习教程:数组中成员的默认值是多少?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/998013.html