我试图在cshtml中声明DateTime FromDate和ToDate,并在Model不为null时分配它们。
@{
DateTime FromDate;
DateTime ToDate;
if (Model != null)
{
FromDate = ViewBag.fromDate;
ToDate = ViewBag.toDate;
}}
我试图以这些方式声明DateTime变量,但是我得到的错误是"使用未分配的局部变量"
DateTime FromDate = string.Empty; DateTime FromDate= Convert.ToDateTime(string.Empty);
有人可以帮帮我。
答案 0 :(得分:0)
您的错误源于if Model == null
您的FromDate
和ToDate
永远不会被分配值。
所有代码路径都必须提供FromDate
和ToDate
一个值 - 因此,最好的办法是使用值初始化变量,即使它是任意的:
DateTime FromDate = new DateTime(); // instantiated as 0001/01/01
DateTime ToDate = new DateTime(); // instantiated as 0001/01/01
如果按此声明,您将不再收到错误Use of Unassigned local variable
,因为DateTime
将始终具有值,无论Model
的状态如何。
您可以看到两种方法Here之间的差异。代码:
public class Program
{
public static void Main()
{
Program.DateTimeWithoutValue();
Program.DateTimeWithValue();
}
public static void DateTimeWithValue()
{
DateTime startDate = new DateTime();
var i = 1;
if (i != 1)
startDate = DateTime.Now;
Console.WriteLine(startDate); // valid
}
public static void DateTimeWithoutValue()
{
DateTime startDate;
var i = 1;
if (i != 1)
startDate = DateTime.Now;
Console.WriteLine(startDate); // use of unassigned local variable error
}
}