Sac*_*nth 22 c# struct value-type new-operator
在C#中,结构是值类型,但我能够将new它们视为引用类型.为什么是这样?
Son*_*nül 15
new运算符并不意味着它只能用于引用类型.它也可以与值类型一起使用.
来自新的运营商
用于创建对象和调用构造函数.
由于每个值类型都隐式具有公共默认构造函数,因此所有值类型都具有默认值.您可以阅读默认值表.
例如;
int i = new int(); // i will be 0 for because its default values.
Run Code Online (Sandbox Code Playgroud)
struct类型的默认值;
通过将所有值类型字段设置为其默认值并将所有引用类型字段设置为null来生成的值.
另外来自MSDN:
使用new运算符创建结构对象时,会创建它并调用相应的构造函数.与类不同,可以在不使用new运算符的情况下实例化结构.如果不使用new,则字段将保持未分配状态,并且在初始化所有字段之前无法使用该对象.