この場合、それらは完全にオプションであり、副作用はまったくありません。あなたの例では、コントロールに属するプロパティの割り当てを意図することにより、コードをより読みやすくするという目的にのみ役立ちます。中括弧なしでそれを行うこともできます。しかし、ツールを使用してコードを再フォーマットすると、インデントがなくなる可能性があります。
ただし、メソッドがあり、そこに {} を入れると、新しい変数スコープを作成できます。
void someMethod() {
{
int x = 1;
}
// no x defined here
{
// no x here, so we may define a new one
string x = "Hello";
}
}
ステートメント (変数宣言、メソッド呼び出し、ループなど) を開始できるメソッド内の任意の場所で、新しいスコープを開始できます。
注: たとえば、if ステートメントがある場合、その中かっこを使用して新しい変数スコープも作成します。
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";
}
}
while、for、try、catch などについても同様です。考えてみれば、メソッド本体のブレースでさえそのように機能します。それらは、クラススコープの上の「レイヤー」である新しいスコープを作成します。