我喜欢null-coalescing运算符,因为它使为可为null的类型分配默认值变得容易。 int y = x ?? -1; 很好,除非我需要使用做一些简单的事情x。例如,如果我想检查Session,那么我通常最终不得不写一些更冗长的东西。 我希望我可以这样做: string y = Session["key"].ToString() ?? "none"; 但是您不能,因为在.ToString()null检查之前调用gets,所以如果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"]两次引用。一次检查,再一次分配。有任何想法吗?