Как правильно проверить нулевые значения?

Мне нравится оператор 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"] дважды; один раз для проверки, и снова для назначения. Есть идеи?

Ответы на вопрос(10)

Ваш ответ на вопрос