【发布时间】:2011-08-04 14:02:14
【问题描述】:
public class MyClass
{
public const Decimal CONSTANT = 0.50; // ERROR CS0664
}
产生这个错误:
错误 CS0664:double 类型的文字不能隐式转换为 输入“十进制”;使用“M”后缀来创建这种类型的文字
作为documented。但这有效:
public class MyClass
{
public const Decimal CONSTANT = 50; // OK
}
我想知道为什么他们禁止第一个。我觉得很奇怪。
【问题讨论】:
-
实数字面量的类型由其后缀确定如下: 无后缀或带 d 或 D 后缀的字面量为 double 类型 带 f 或 F 后缀的字面量为 float 类型带有 m 或 M 后缀的字面量是十进制 docs.microsoft.com/en-us/dotnet/csharp/language-reference/…