2011-06-21 9 views
6

Używam ReSharper do refaktoryzacji mojego kodu, a jedną z sugestii ReSharper jest użycie odpowiedniego oddziału zamiast instrukcji if, która zawsze jest prawdziwa.Co to jest odpowiednia gałąź? (sugerowane przez ReSharper)

Jeśli mam

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

I zastosować odpowiednią gałąź kod jest podobny do poniższego

{ 
    //code 
} 

Jest to skrót od instrukcji if? Do czego służy ten element? Jaka jest różnica między ostrymi wspornikami i niczym?

Z góry dziękuję.

Odpowiedz

10

Blok musi tam pozostać, inaczej semantyka się zmieni.

Zakres zmiennych zadeklarowanych w bloku gałęzi zmieni się po usunięciu nawiasów klamrowych. Potencjalnie ze zmiennymi/konfliktami (lambda) może to prowadzić do niespodzianek.

Aby usunąć nawiasy, umieść kursor na jeden z nich i wciśnij Alt-Enter „Usuń Szelki”

przywrócić szelki: Wybierz blok kodu, Ctrl-Alt-J, 7 otaczać z bloku :)

+0

Świetnie! Dziękuję za twoje wspaniałe wyjaśnienie, mogę teraz zrozumieć, dlaczego aparaty podtrzymujące pozostają, nie wiedziałem, że możesz użyć klamr tylko po to, aby zachować zakres zmiennych. Dzięki!. – Amra

0

W ReSharper 6.0 to polecenie usuwa również nawiasy klamrowe, jeśli nie masz wewnątrz deklaracji zmiennych.