Как правильно проверить нулевые значения?
Мне нравится оператор null-coalescing, потому что он позволяет легко назначать значение по умолчанию для обнуляемых типов.
int y = x ?? -1;
Это замечательно, если только мне не нужноx
, Например, если я хочу проверитьSession
тогда мне обычно приходится писать что-то более подробное.
Я хотел бы сделать это:
string y = Session["key"].ToString() ?? "none";
Но вы не можете, потому что.ToString()
вызывается перед нулевой проверкой, поэтому она не работает, еслиSession["key"]
нулевой. Я заканчиваю тем, что делал это:
string y = Session["key"] == null ? "none" : Session["key"].ToString();
Это работает и лучше, на мой взгляд, чем трехстрочный вариант:
string y = "none";
if (Session["key"] != null)
y = Session["key"].ToString();
Хотя это работает, мне все еще интересно, есть ли лучший способ. Кажется, независимо от того, что я всегда должен ссылатьсяSession["key"]
дважды; один раз для проверки, и снова для назначения. Есть идеи?