默认构造函数和默认构造函数之间的区别是什么

use*_*949 10 c# constructor

我有一个名为的班级A.这两个陈述有什么区别?

A a = new A();

A a = default(A);
Run Code Online (Sandbox Code Playgroud)

And*_*are 13

这将A通过调用默认的无参数构造函数来创建该类型的新实例:

A a = new A();
Run Code Online (Sandbox Code Playgroud)

这将type的默认值赋给A变量,a并且根本不调用任何构造函数:

A a = default(A);
Run Code Online (Sandbox Code Playgroud)

的主要区别在于,一个类型的默认值是null对于引用类型和所有的值类型的零位值(因此default(int)将是0,default(bool)false等).

  • @Fermaref - 不确定你在哪里.语句`var x = default(TestClass);`将`null`赋给`x` (6认同)