.net で日時定数を作成したいのですが、エラー メッセージが表示されます。
const DateTime dt = Convert.ToDateTime("02/02/2014");
'System.DateTime' は const として宣言できません。
aをconstとして宣言できたとしてもDateTime
(他の回答が示しているように、宣言できません)、値としてコンパイル時定数DateTime.Now
を使用する必要があります。これは、コンパイル時定数ではないことは間違いありません。
ただし、これは有効です。
static readonly DateTime dt = DateTime.Now();
ただし、これは「型の型初期化子が実行されたときはいつでも」であることに注意してください。起動時に初期化されていることを確認しない限り、これが特に有用な値になることはめったにありません。
DateTime は C# 言語のネイティブ型ではなく、.Net ライブラリの構造体です。
C# では、ネイティブ言語の型からのみ const を作成でき、コンパイル時に計算できる値でのみ初期化できます。DateTime.Now はコンパイル時に計算できません。
(const で使用できる唯一の参照型は文字列です。これは、文字列が特別に処理されるためです。)
http://msdn.microsoft.com/en-gb/library/e6w8fe1b%28v=vs.71%29.aspxを参照してください。