new运算符返回null - C#

Ein*_*ana 6 c#

我有这个代码:

public ObjectModel.Path GetPath(int pathid)
{
    var path = this.DbContext.Paths.Find(pathid);
    var app = GetApplicationById(path.ApplicationId.GetValueOrDefault());

    var p = new Path 
    {
        ApplicationId = path.ApplicationId,
        Id = path.Id, Password = path.Password,
        UserName = path.UserName,
        LocalUrl = string.IsNullOrEmpty(path.LocalUrl) ? null : System.IO.Path.Combine(path.LocalUrl, app.Name)

    };


    return p;
}  
Run Code Online (Sandbox Code Playgroud)

变量p总是如此null.这怎么可能?

这是我正在谈论的打印屏幕:

在此输入图像描述

我也尝试使用即时窗口我得到了这个:

在此输入图像描述

p因为我创建了一个新实例,而它的所有属性都不为null,所以不能为空.我尝试清理项目,重新启动Windows,以管理员身份打开visual studio,没有任何反应.

知道为什么吗?

该应用程序在.net 4.0,visual studio 2017 v15.2(26430.13)上运行.

Sho*_*ter 10

您的变量不为null.

默认情况下,调试器尝试在重载时显示ToString()方法的内容.在这种情况下,它显示(可能)Uri或FtpUrl值为null.

当你悬停它时,尝试点击变量上的小三角形,然后你会看到变量的全部内容.

  • 很好的答案,但有一个狡辩:调试器调用`ToString()`而不管它是否被覆盖,*除非*在类型上指定`DebuggerDisplayAttribute`. (3认同)