Są całkowicie opcjonalne w tym przypadku i nie mają żadnego efektu ubocznego. W twoim przykładzie jest to jedyny cel, który ma na celu uczynienie kodu bardziej czytelnym poprzez zamiar przypisania nieruchomości do kontrolki. Równie dobrze można to zrobić bez aparatu ortodontycznego. Ale jeśli użyjesz narzędzia do ponownego sformatowania kodu, wcięcie prawdopodobnie zniknie.
Jednakże, jeśli masz metoda i umieścić {} tam, można utworzyć nowy zakres Zmienna:
void someMethod() {
{
int x = 1;
}
// no x defined here
{
// no x here, so we may define a new one
string x = "Hello";
}
}
można rozpocząć nowy zakres nigdzie w sposób, w którym można rozpocząć oświadczenie (deklaracja zmiennej, wywołanie metody, pętla itp.)
Uwaga: Jeśli masz na przykład instrukcję if, utworzysz również nowy zakres zmiennej z tymi nawiasami klamrowymi.
void someMethod() {
if (someThing) {
int x = 1;
}
// no x defined here
if (somethingElse) {
// no x here, so we may define a new one
string x = "Hello";
}
}
To samo dotyczy, gdy, dla, spróbować, złapać i tak dalej. Jeśli się nad tym zastanowić, to nawet nawiasy korpusu metody działają w ten sposób: tworzą nowy zakres, który jest "warstwą" na szczycie zakresu klasy.
o ile mi wiadomo, jest to tak samo, jak gdybyś opuścił {}. menu.add to jedno polecenie, menu.setIcon to następne menu.setShowAsAction następne. Klamry mogą być używane do deklarowania bloków kodu. – damian
Tylko duplikat tego * jeśli wiesz * jest to anonimowy blok kodu. – Raedwald