如果语句c#声明var里面
我有这个var,但是我想根据语句改变它的内容,我不能让它工作,因为当我使用它时,VS说它还没有声明,即使声明是真的……
if (DateTime.Today.Day > 28 && DateTime.Today.Day d.Date.Day > 28 && d.Date.Day d.Date.Day 2).Take(4); }
编辑:
我试图在框外面声明变量…但是也不能让它工作,我保持var天的function是这个
public IEnumerable GetDaysLikeMe(DateTime currentDate) { DateTime temp = currentDate; while (true) { temp = temp.AddDays(-7); yield return temp; } }
声明if语句范围之外的变量:
IEnumerable days; if (DateTime.Today.Day > 28 && DateTime.Today.Day < 2) { days = GetDaysLikeMe(calendario.Value.Date).Take(50).Where(d => d.Date.Day > 28 && d.Date.Day < 2).Take(4); } else { days = GetDaysLikeMe(calendario.Value.Date).Take(50).Where(d => d.Date.Day < 28 && d.Date.Day > 2).Take(4); }
在if块之外声明变量(不指定值 – 在这种情况下你不能使用var
,你必须指定类型),然后只在里面给它赋值。
您的代码现在没有任何问题 – 您可以使用var
轻松定义可变量或在任何块内明确指定类型,包括if
。
可能发生的是你试图在它被定义的块之外使用这个varable(即在if
语句之后),这是days
未定义的地方。
修复:在if之外定义变量,但是你需要显式类型。 如果你有ReSharper,它允许在var
/ explicit类型之间轻松更改。 否则你必须自己弄清楚类型(在你的情况下,它可能是IEnumerable
)。