2011-08-30 28 views
5

Przepuściłem dzisiaj fragment kodu C#, którego wcześniej nie widziałem. Programista zdefiniował blok kodu za pomocą tylko nawiasów klamrowych (nie, jeśli, klasa, funkcja, itp.).Pływające nawiasy klamrowe w C#

{ 
    int i = 0; 
} 
i++; //compile error 

Czy jest jakiś cel dla tego innego niż sprawienie, że kod wygląda bardziej zorganizowany? Czy jest to dobre, złe, czy jakakolwiek praktyka do używania tego "pływającego" kontekstu?

+0

http://stackoverflow.com/questions/249009/do-you-use-curly-braces-for-additional-coping – luketorjussen

+1

przykro mi z powodu duplikatu pytania, myślałem, że mam google dość trudne! – prestomanifesto

+0

Nie powinno to być oznaczone ** duplikatem ** na pytanie z 2008 roku, które zostało zmienione w 2010 na ** niepoprawnie ** zawierało 'C# ', gdy wszystkie odpowiedzi są ** wyraźnie nie C# **. Nominując, że został ** ponownie otwarty ** – MickyD

Odpowiedz

9

Można użyć otwartego i zamkniętego zestawu nawiasów klamrowych, aby zdefiniować blok zawierający własny, który ma własny zakres.

Zasadniczo nie uważa się tego za dobrą praktykę programistyczną.

Zwykle, jeśli ktoś robi coś takiego, prawdopodobnie lepiej jest utworzyć metodę/funkcję w swoim miejscu.

0

Celem tego jest pokazanie, że int i jest w rzeczywistości w innym zakresie niż zwiększony i poniżej.

1

Kod ten w ogóle nie ma zastosowania. Prawdopodobnie artefakt z czegoś innego, co próbował zrobić. W komentarzu pokazuje, że to nie będzie nawet kompilacji, ponieważ i jest poza zakresem.

Z perspektywy stylu kodowania osobiście tego nie lubię i nigdy wcześniej nie widziałem, żeby ktoś używał ruchomych nawiasów klamrowych, aby "porządkować" swój kod wcześniej.

1

Aparat ortodontyczny {} w C# określ zakres. Wszystko, co jest w nich zdefiniowane, "wykracza poza zakres" po zerwaniu nawiasów klamrowych.

Przykład wydaje się bezsensowny. Nie mogę sobie wyobrazić, dlaczego byłby użyty w prawdziwym świecie kodu. Zakładam, że ograniczyłeś prezentowany kod?

+0

Ya. Sposób, w jaki był faktycznie używany, był na stronie ASP, która ręcznie renderowała jakiś kod HTML. Szelki były używane do wcięcia logicznie tego, co znajdowało się w każdym elemencie. – prestomanifesto

1

Każda zmienna wewnątrz "zakresu" tych nawiasów klamrowych będzie poza zakresem.

0

Ogranicza zakres zmiennej do wewnątrz tego bloku. Tak więc zmienna i nie byłaby widoczna poza tymi aparatami.

Może to być również preferowane, jeśli ktoś chce oddzielić kod, ale używanie go, gdy nie jest to konieczne, w większości przypadków byłoby zbyteczne.

Powiązane problemy