我有这段代码:
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;
}
变量p
始终为null
。这怎么可能?
以下是我所说的打印屏幕:
我也尝试使用即时窗口我得到了这个:
p
不能为空,因为即时创建它的新实例,而其所有属性都不为空。我尝试清理项目,重新启动Windows,以管理员身份打开visual studio,没有任何反应。
知道为什么吗?
该应用程序在.net 4.0,visual studio 2017 v15.2(26430.13)上运行。
答案 0 :(得分:10)
您的变量不为空。
默认情况下,调试器尝试在ToString()方法重载时显示内容。在这种情况下,它显示(可能)Uri或FtpUrl值为null。
当您悬停它时,尝试点击变量上的小三角形,然后您将看到变量的完整内容。