【发布时间】:2018-03-21 14:37:28
【问题描述】:
int x = 6;
它有效,但是
Int32 x = new Int32(6);
没有。 为什么 Int32 的默认构造函数是无参数的? 它如何将 6 分配给 x?
编辑: 更多解释.. https://referencesource.microsoft.com/#mscorlib/system/int32.cs,225942ed7b7a3252第38行:
internal int m_value;
编译器如何为这个 m_value 赋值 6? Int32 的构造函数是无参数的。
【问题讨论】:
-
它由编译器完成。这就是引擎盖的魔法,仅此而已
-
我认为
System.Int32甚至没有无参数构造函数。 -
@TimSchmelter - 所有结构都有一个默认构造函数。
-
@TimSchmelter all 结构具有无参数构造函数。当然你可以自己编译代码自己看,而不是相信网上的陌生人。
-
@Servy:这可能是编译器的魔力,让你相信有一个,而实际上没有
标签: c# constructor int internals int32