为什么C#的十进制数不能在没有"M"后缀的情况下进行初始化?

10 浏览
0 Comments

为什么C#的十进制数不能在没有"M"后缀的情况下进行初始化?

代码

public class MyClass
{
    public const Decimal CONSTANT = 0.50; // 错误 CS0664
}

产生了这个错误:

错误 CS0664:不能隐式将类型为 double 的文字转换为类型 'decimal';使用 'M' 后缀创建这种类型的文字

根据文档。但是这个能够正常工作:

public class MyClass
{
    public const Decimal CONSTANT = 50; // 正确
}

为什么他们禁止了第一个呢?对我来说这很奇怪。

0