我有一个名为的班级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等).