据我所知,定义类型的编译时常量没有文字后缀System::Decimal
(与 C# 中的 M 后缀相比,即 ie Decimal d = 100.5M
)。此外,编译器拒绝以下代码:
literal System::Decimal myDecimal = 100.5;
如果我无法定义十进制文字,那么如何初始化一个需要小数作为其字段之一的属性?为了说明,请考虑以下代码:
using namespace System;
public ref class MyConfigElement : ConfigurationElement
{
public:
[ConfigurationProperty("Money", DefaultValue = 500.0, IsRequired = false)]
property Decimal Money { Decimal get(); void set(Decimal value); }
};
当前值 500.0 在编译为 type 时是无效的,然后它被运行时拒绝,因为它与属性 ( )double
的类型不匹配。Decimal
是否可以正确初始化此属性的默认值?