c#返回在函数中创建的对象

时间:2011-08-07 07:07:51

标签: c#

我有如下功能。

    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语句的行中存在一个对象。但是当我回到调用函数时,什么都没有。出了什么问题?

1 个答案:

答案 0 :(得分:1)

尝试使用立即窗口打印变量(只需执行.ToString())。这可能只是VS工具提示的一个问题。

正如Jon Skeet在评论中所说 - 你总能得到一些东西,无论是价值还是null。变量不可能在未定义中没有任何值,也不可能null