Какова соответствующая отрасль?(предложено ReSharper) - PullRequest
8 голосов
/ 21 июня 2011

Я использую ReSharper для рефакторинга своего кода, и одним из предложений ReSharper является использование соответствующей ветви вместо оператора if, который всегда верен.

Если у меня

if (myVar != null){
   //code
}

И я применяю соответствующую ветку, код похож на следующий

{
   //code
}

Является ли это кратким сокращением оператора if?Для чего это используется?В чем разница между милыми скобками и ничем?

Заранее спасибо.

Ответы [ 2 ]

10 голосов
/ 21 июня 2011

Требуется, чтобы блок оставался там, иначе семантика изменится.

Область переменных, объявленных внутри блока перехода, изменится при удалении фигурных скобок.Потенциально с конфликтующими / скрывающими (лямбда) переменными это может привести к неожиданностям.

Чтобы удалить фигурные скобки, поместите курсор на одну из них и нажмите Alt-Enter, «Удалить фигурные скобки»

Повторно введите фигурные скобки: выберите блок кода, Ctrl-Alt-J, 7 чтобы окружить блоком:)

0 голосов
/ 24 июня 2011

В ReSharper 6.0 эта команда также удаляет фигурные скобки, если у вас нет объявлений переменных внутри.

...