私が知る限り、型のコンパイル時定数を定義するためのリテラル サフィックスはありませんSystem::Decimal
(C# の M サフィックスと比較して、つまりDecimal d = 100.5M
)。さらに、次のコードはコンパイラによって拒否されます。
literal System::Decimal myDecimal = 100.5;
10 進リテラルを定義できない場合、フィールドの 1 つとして 10 進を必要とする属性をどのように初期化できますか? 説明のために、次のコードを検討してください。
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 の現在の値は、型 にコンパイルされるため無効ですdouble
。これは、プロパティの型 ( ) と一致しないため、ランタイムによって拒否されますDecimal
。
この属性のデフォルト値を正しく初期化できますか?