我有如下功能。
public StartEnd ConvertStartEnd(StartEnd pse, Item pi)
{
if (DaysBefore == pi.DaysBefore && DaysAfter == pi.DaysAfter)
{
return pse;
}
StartEnd ise = new StartEnd();
if (pse.Start <= DaysBefore)
{
int var1 = DaysBefore - pse.Start;
int var2 = pi.DaysBefore - var1;
if (var2 < 0)
{
ise.Start = -1;
}
else
{
ise.Start = var2;
}
}
else if (pse.Start > DaysBefore)
{
int var1 = pse.Start - DaysBefore;
if (var1 > DaysAfter)
{
ise.Start = -1;
}
else
{
ise.Start = pi.DaysBefore + var1;
}
}
if (pse.End <= DaysBefore)
{
int var1 = DaysBefore - pse.End;
int var2 = pi.DaysBefore - var1;
if (var2 < 0)
{
ise.End = -1;
}
else
{
ise.End = var2;
}
}
else if (pse.End > DaysBefore)
{
int var1 = pse.End - DaysBefore;
if (var1 > DaysAfter)
{
ise.End = -1;
}
else
{
ise.End = pi.DaysBefore + var1;
}
}
return ise;
}
实际上是在函数中创建一个对象并将其返回。
当我说var insSe = ConvertStartEnd(portSe, entry.Value);
时,我没有返回值。我调试了函数,并且存在return
语句的行中存在一个对象。但是当我回到调用函数时,什么都没有。出了什么问题?
答案 0 :(得分:1)
尝试使用立即窗口打印变量(只需执行.ToString()
)。这可能只是VS工具提示的一个问题。
正如Jon Skeet在评论中所说 - 你总能得到一些东西,无论是价值还是null
。变量不可能在未定义中没有任何值,也不可能null
。