27

.net で日時定数を作成したいのですが、エラー メッセージが表示されます。

const DateTime dt = Convert.ToDateTime("02/02/2014");

'System.DateTime' は const として宣言できません。

4

2 に答える 2

31

aをconstとして宣言できたとしてもDateTime(他の回答が示しているように、宣言できません)、値としてコンパイル時定数DateTime.Nowを使用する必要があります。これは、コンパイル時定数ではないことは間違いありません。

ただし、これは有効です。

static readonly DateTime dt = DateTime.Now();

ただし、これは「型の型初期化子が実行されたときはいつでも」であることに注意してください。起動時に初期化されていることを確認しない限り、これが特に有用な値になることはめったにありません。

于 2013-02-25T09:11:55.003 に答える
21

DateTime は C# 言語のネイティブ型ではなく、.Net ライブラリの構造体です。

C# では、ネイティブ言語の型からのみ const を作成でき、コンパイル時に計算できる値でのみ初期化できます。DateTime.Now はコンパイル時に計算できません。

(const で使用できる唯一の参照型は文字列です。これは、文字列が特別に処理されるためです。)

http://msdn.microsoft.com/en-gb/library/e6w8fe1b%28v=vs.71%29.aspxを参照してください。

于 2013-02-25T09:09:58.760 に答える