Поддерживает ли С#, если кодовые блоки без брекетов?
Как С# скомпилировать это?
if (info == 8)
info = 4;
otherStuff();
Включит ли он последующие строки в кодовом блоке?
if (info == 8)
{
info = 4;
otherStuff();
}
Или это займет только следующая строка?
if (info == 8)
{
info = 4;
}
otherStuff();
Ответы
Ответ 1
Да, он поддерживает его, но он принимает следующий оператор, а не следующую строку. Так, например:
int a = 0;
int b = 0;
if (someCondition) a = 1; b = 1;
int c = 2;
эквивалентно:
int a = 0;
int b = 0;
if (someCondition)
{
a = 1;
}
b = 1;
int c = 2;
Лично я всегда включаю фигурные скобки вокруг тел операторов if
, и большинство конвенций кодирования, с которыми я сталкивался, используют тот же подход.
Ответ 2
if (info == 8)
{
info = 4;
}
otherStuff();
Ответ 3
Он работает как C/С++ и Java. Без curlies он включает только следующее утверждение.
Ответ 4
Да, он поддерживает, если кодовые блоки без фигурных скобок, только первый оператор после if будет включен в блок if, как в вашем втором примере
Ответ 5
Конечно, "если" работает только для "info = 4".
Ответ 6
Это займет только следующую строку, поэтому ваш пример будет скомпилирован во второй возможный пример результата.
Ответ 7
В С#, если операторы запускают команды на основе скобок. Если никаких скобок не задано, она запускает следующую команду, если оператор является истинным, а затем запускает команду после. если условие ложно, просто продолжает следующую команду
поэтому
if( true )
method1();
method2();
будет таким же, как
if( true )
{
method1();
}
method2();