最近我看到有报道称,C#和CLI标准定义了处理值类型和构造函数的不同方式。
根据CLI规范,值类型不能有无参数构造函数,而在C#规范中,值类型具有默认的无参数构造函数。如果按照CLI规范,您需要创建一个没有指定任何参数的值,那么可以使用特殊指令来完成这个功能。
因此,我的问题是:
- 为什么C#设计人员会故意偏离CLI标准 - 这样做有什么好处,为什么CLI不允许这种功能?
- 就我的有限经验而言,每当我发现自己使用“特殊指令”来允许最初并未打算的功能时,通常都有些不太对劲。这与其他情况有何不同?