C#编译器是否为引用类型(如果未指定)或CLR提供默认构造函数?

use*_*677 5 .net c# clr

我相信(如果我错了,请纠正我),根据值类型的C#规则,没有默认构造函数.CLR将定义用于将字段值清零的那个.

供参考类型:

class Test
{

  private string Name;

}
Run Code Online (Sandbox Code Playgroud)

默认构造函数是由C#还是CLR提供的?

Bot*_*000 11

在CLI规范中,构造函数对于非静态类是必需的,因此如果您未指定其他构造函数,则编译器将至少生成默认构造函数.

因此,C#编译器将为您提供默认构造函数.