私は.NETの日時定数を作成したいが、エラー・メッセージなぜdatetime定数を.netで作成できないのですか?
const DateTime dt = Convert.ToDateTime("02/02/2014");
を得るには、「可能System.DateTime」のconst宣言することはできません。
私は.NETの日時定数を作成したいが、エラー・メッセージなぜdatetime定数を.netで作成できないのですか?
const DateTime dt = Convert.ToDateTime("02/02/2014");
を得るには、「可能System.DateTime」のconst宣言することはできません。
DateTimeはC#言語のネイティブタイプではありません.NetTimeライブラリの構造体です。
C#では、ネイティブ言語の型からしかconstを作成できません。また、コンパイル時に計算できる値で初期化できます。 DateTime.Nowはコンパイル時には計算できません。
は(あなたがconstのに使用できる唯一の参照型は文字列で、文字列は特別に処理されているためです。)あなたは のconstとしてDateTime
を宣言することができたとしても
は(http://msdn.microsoft.com/en-gb/library/e6w8fe1b%28v=vs.71%29.aspx
'DateTime.Now'は' const'式ではありません。 const値は、リテラルなどの他のconst式からのみ割り当てることができます。 – Dai
ありがとうございました。また、文字列についての情報も含めて更新しました。 –
を参照してください。コンパイル時定数を値として使用する必要があります。DateTime.Now
はコンパイル時定数ではありません。
しかしこれは有効です。
static readonly DateTime dt = DateTime.Now();
注これはしかし「型の型初期化子が実行されたものは何でも時間」になること。あなたが測定しようとしていることを前提にして、起動時に初期化されていることを確認しない限り、特に有用な値はめったにありません。
constの代わりにreadonlyを使用できることについての良い点があります。 –
'VB.NET'の' Const'もコンパイル時に 'static readonly'に変換されることは注目に値します。 @TimSchmelter:ILでは 'literal'を使って表現できない値のみです。これは擬似定数です:' Const today As DateTime =#2/25/2013# ' –
@TimSchmelter: 'Public Const Bar As Integer = 20'を使用してILで' .field public static literal int32 Bar = int32(0x14) 'となる場合。 –
なぜそれを定数にする必要がありますか? – levelnis
VB.NET: 'Const Today As DateTime =#2/25/2013#' –