Sie sind in diesem Fall völlig optional und haben keine Nebenwirkung. In Ihrem Beispiel dient es lediglich dazu, den Code lesbarer zu machen, indem die Eigentumszuweisung, die zu dem Steuerelement gehört, beabsichtigt ist. Sie könnten es auch ohne die Zahnspange tun. Aber wenn Sie ein Werkzeug verwenden, um Ihren Code neu zu formatieren, ist die Einrückung wahrscheinlich weg.
Wenn Sie jedoch eine Methode haben, und Sie setzen {} in dort können Sie einen neuen Variable Bereich erstellen:
void someMethod() {
{
int x = 1;
}
// no x defined here
{
// no x here, so we may define a new one
string x = "Hello";
}
}
Sie können einen neuen Bereich überall in einer Methode beginnen, wo Sie eine Anweisung beginnen (eine Variablendeklaration, ein Methodenaufruf, eine Schleife usw.)
Hinweis: Wenn Sie zum Beispiel eine if-Anweisung haben, erstellen Sie auch einen neuen Variablenbereich mit diesen geschweiften Klammern.
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";
}
}
Das gleiche gilt für während, für, versuchen, fangen und so weiter. Wenn man darüber nachdenkt, funktionieren sogar die Klammern eines Methodenkörpers auf diese Weise: Sie erzeugen einen neuen Bereich, der eine "Ebene" über dem Klassenbereich ist.
Soweit ich weiß, ist dies das gleiche wie wenn Sie die {} verlassen würden. menu.add ist ein Befehl, menu.setIcon ist der nächste, menu.setShowAsAction der nächste. Klammern können verwendet werden, um Codeblöcke zu deklarieren. – damian
Nur ein Duplikat von * wenn Sie wissen, * es ist ein anonymer Codeblock. – Raedwald