Возможно, на этот вопрос был дан ответ раньше, но слово if
встречается так часто, что его трудно найти.
Пример не имеет смысла (выражение всегда верно), но оно иллюстрирует мой вопрос.
Почему этот код действителен:
StringBuilder sb;
if ((sb = new StringBuilder("test")) != null) {
Console.WriteLine(sb);
}
Но этот код не является:
if ((StringBuilder sb = new StringBuilder("test")) != null) {
Console.WriteLine(sb);
}
Я нашел аналогичный вопрос относительно оператора while
. В принятом ответе говорится, что в выражении while
это означает, что переменная будет определена в каждом цикле. Но для моего примера if
, это не так.
Так почему же нам не разрешено это делать?