tôi có mã này:điều hành mới trở về null - 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;
}
Biến p
luôn là null
. Làm thế nào là điều này posible?
Dưới đây là một màn hình in về những gì tôi đang nói về:
Tôi cũng thử với các cửa sổ ngay lập tức tôi nhận điều này:
p
THỂ KHÔNG NULL kể từ im tạo ra một thể hiện mới của nó trong khi tất cả các thuộc tính của nó không phải là null. Tôi đã thử làm sạch dự án, khởi động lại các cửa sổ, mở studio trực quan với tư cách là quản trị viên và không có gì xảy ra.
Bất kỳ ý tưởng nào tại sao?
Ứng dụng đang chạy trên .net 4.0, studio trực quan 2017 v15.2 (26430.13) relase.
Có thể chỉ là trình gỡ lỗi của bạn. Bạn đang gỡ lỗi với tối ưu hóa trên (tức là chế độ phát hành)? Để kiểm tra lý thuyết chỉ cần thêm một kiểm tra null và ném một 'ArgumentNullException' mới, nếu bạn nhận được ngoại lệ trong khi gỡ lỗi thì nó là null (* mà tôi nghi ngờ vì nó không nên có khả năng *) và nếu không thì đó là trình gỡ lỗi của bạn. – Igor
@Igor Không, im trong chế độ gỡ lỗi. –
Lớp 'Path' có ghi đè' ToString' hay nó được trang trí với bất kỳ thuộc tính nào có tên bắt đầu bằng "Debugger" không? – Amy