我喜欢null-coalescing运算符,因为它使为可为null的类型分配默认值变得容易。
int y = x ?? -1;
很好,除非我需要使用做一些简单的事情x
。例如,如果我想检查Session
,那么我通常最终不得不写一些更冗长的内容。
我希望我可以这样做:
string y = Session["key"].ToString() ?? "none";
但是您不能这样做,因为在.ToString()
空检查之前会先调用gets,因此如果Session["key"]
为空则失败。我最终这样做:
string y = Session["key"] == null ? "none" : Session["key"].ToString();
我认为,此方法行之有效,并且比三行方法更好:
string y = "none";
if (Session["key"] != null)
y = Session["key"].ToString();
即使这行得通,但我仍然好奇是否有更好的方法。看来我总是必须Session["key"]
两次引用。一次检查,再一次分配。有任何想法吗?
关于什么
string y = (Session["key"] ?? "none").ToString();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句