3

在我的代码中,我像这样初始化了 Datetime

 DateTime myDate;

但是当我尝试访问它时,我得到了这个错误。

局部变量“myDate”在访问之前可能未初始化

在这里我初始化了我的日期知道吗?

4

1 回答 1

19

声明了它,但你没有给它一个值;在“明确分配”之前,您无法读取局部变量。举个简单的例子:

DateTime myDate = DateTime.UtcNow; // is assigned

您不必立即给它一个值......您可以在尝试阅读它之前的任何时候给它一个值,包括任何分支等,它不会留下它有一个值的歧义,例如:

DateTime myDate;
//....
if(condition) {
    myDate = DateTime.UtcNow;
} else {
    myDate = GetDateFromSomewhereElse();
}
Console.WriteLine(myDate);

相比之下,字段(类变量)会自动初始化为它们的全零值,并且在对象创建时被视为“明确分配”。

于 2012-08-21T05:43:19.383 回答