是的,C#编译器在编译的时候,如果我们声明字段的时候为字段赋值,那么为字段赋值的代码C#编译器在编译的时候会将赋值的代码放到构造函数中去,其实严格意义上来说,类的字段也是不能有初始值的.只不过微软在背后帮我们做了点事情...这个错误,仍然提示我们在构造函数中没有为所有的字段赋值,这是很多童鞋遇到的问题,诶,不是要在构造函数中为所有的字段赋值么?我现在赋值了啊。为什么还是提示没有赋值呢?...原因很简单.因为语法要求我们为所有的字段赋值,虽然这里我们看得出来为属性赋值其实属性再把值赋值给字段, 我们说属性是对字段的操作,但是一定是这样的吗?...原因很简单.因为声明的时候就不能给初始值,虽然构造函数中为对象的字段赋值,但是此种方式创建结构体对象,没有调用构造函数,所以必须要程序员在使用之前手动赋值。下面这样就可以了.
?...所以,我们不难猜出.结构体的无参数的构造函数做了什么事情,在无参数的构造函数中为所有的字段赋值,值类型的字段赋值0,给引用类型的字段赋值null.
d.