【发布时间】:2010-12-27 13:36:39
【问题描述】:
我看到一些代码会返回默认值,所以我想知道对于用户定义的类,编译器将如何定义其默认值?
【问题讨论】:
-
澄清一下:所有类(包括您创建的类)都将默认为
null。数值类型默认为零,结构由实现定义(值在构造函数中设置)。 -
实际上,结构体有一个不能被覆盖的隐式默认构造函数,其中零是结构体使用的内存,所以默认值仍然是编译器定义的,而不是实现定义的。
-
重要区别:类成员用它们的默认值初始化。未初始化的局部函数变量只会给出编译器错误;)
标签: c# default-value