最佳答案
我喜欢空合并运算符,因为它可以很容易地为可空类型分配默认值。
int y = x ?? -1;
那很好,除非我需要用 x
做一些简单的操作。例如,如果我想检查 Session
,那么我通常不得不写一些更详细的东西。
我希望我能做到这一点:
string y = Session["key"].ToString() ?? "none";
但是不能,因为 .ToString()
在 null 检查之前被调用,所以如果 Session["key"]
为 null,它就会失败。我最后会这样做:
string y = Session["key"] == null ? "none" : Session["key"].ToString();
在我看来,它比三行替代方案更有效,也更好:
string y = "none";
if (Session["key"] != null)
y = Session["key"].ToString();
即使这种方法有效,我还是很好奇是否有更好的方法。似乎无论如何,我总是要引用 Session["key"]
两次; 一次是为了检查,一次是为了作业。有什么想法吗?