私のコードでは、このようにDatetimeを初期化しました
DateTime myDate;
しかし、アクセスしようとすると、このエラーが発生しました。
アクセスする前にローカル変数「myDate」が初期化されていない可能性があります
ここで私は私の日付を初期化しましたか?
宣言しましたが、値を指定しませんでした。「確実に割り当てられる」まで、ローカル変数を読み取ることはできません。簡単な例:
DateTime myDate = DateTime.UtcNow; // is assigned
すぐに値を指定する必要はありません...たとえば、値があるというあいまいさを残さない分岐などを含め、読み取りを試みる前にいつでも値を指定できます。たとえば、次のようになります。
DateTime myDate;
//....
if(condition) {
myDate = DateTime.UtcNow;
} else {
myDate = GetDateFromSomewhereElse();
}
Console.WriteLine(myDate);
対照的に、フィールド(クラス変数) はすべてゼロの値に自動的に初期化され、オブジェクトの作成から「確実に割り当てられた」ものとして扱われます。