C# 在if语句c中声明var#
我有这个变量,但是我想根据语句改变它的内容,我不能让它工作,因为当我使用它时,VS说它没有被声明,即使语句是真的C# 在if语句c中声明var#,c#,variables,C#,Variables,我有这个变量,但是我想根据语句改变它的内容,我不能让它工作,因为当我使用它时,VS说它没有被声明,即使语句是真的 if (DateTime.Today.Day > 28 && DateTime.Today.Day < 2) { var days = GetDaysLikeMe(DateTime.Today).Take(50).Where(d => d.Date.Day > 28 && d.Date.Day < 2).Take(
if (DateTime.Today.Day > 28 && DateTime.Today.Day < 2)
{
var days = GetDaysLikeMe(DateTime.Today).Take(50).Where(d => d.Date.Day > 28 && d.Date.Day < 2).Take(4);
}
else
{
var days = GetDaysLikeMe(DateTime.Today).Take(50).Where(d => d.Date.Day < 28 && d.Date.Day > 2).Take(4);
}
if(DateTime.Today.Day>28&&DateTime.Today.Day<2)
{
var days=GetDaysLikeMe(DateTime.Today).Take(50).其中(d=>d.Date.Day>28&&d.Date.Day<2).Take(4);
}
其他的
{
var days=GetDaysLikeMe(DateTime.Today).Take(50).其中(d=>d.Date.Day<28&&d.Date.Day>2).Take(4);
}
编辑:
我试图在框外声明变量。。。但也不能让它工作,我在var days上保持的功能是
public IEnumerable<DateTime> GetDaysLikeMe(DateTime currentDate)
{
DateTime temp = currentDate;
while (true)
{
temp = temp.AddDays(-7);
yield return temp;
}
}
public IEnumerable GetDaysLikeMe(日期时间currentDate)
{
日期时间温度=当前日期;
while(true)
{
温度=温度增加天数(-7);
屈服返回温度;
}
}
在if块外声明变量(不赋值-在这种情况下不能使用var
,但必须指定类型),然后只在if块内为其赋值。在if语句范围外声明变量:
IEnumerable<DateTime> 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);
}
i数日;
如果(DateTime.Today.Day>28&&DateTime.Today.Day<2)
{
days=GetDaysLikeMe(calendario.Value.Date).Take(50).其中(d=>d.Date.Day>28&&d.Date.Day<2).Take(4);
}
其他的
{
days=GetDaysLikeMe(calendario.Value.Date).Take(50).其中(d=>d.Date.Day<28&&d.Date.Day>2).Take(4);
}
现在的代码没有任何问题-您可以使用var
轻松定义变量,或者在任何块中明确指定类型,包括if
可能发生的情况是,您试图在定义的块之外使用此变量(即在if
语句之后,days
变为未定义的块)
修正:在if之外定义变量,但需要在那里显式类型。如果您有ReSharper,它允许在
var
/显式类型之间轻松地进行更改。否则,您必须自己确定键入方式(在您的情况下,它可能是eIEnumerable
)。您打算在哪里使用它?在if
或else
块的内部?不要在if语句中声明变量,大多数编译器应该阻止您这样做。首先声明变量,然后根据语句对其进行更改。DateTime.Today.Day
怎么可能同时大于28而小于2?可能需要使IEnumerable days
Ye与Cory correction和您的答案一起工作!!非常感谢。