C# の switch ステートメントで、複数のケースで使用される変数に対して、最初のケースでのみ宣言するのはなぜですか?
たとえば、次の例では、「'variable' という名前のローカル変数は、このスコープで既に定義されています」というエラーがスローされます。
switch (Type)
{
case Type.A:
string variable = "x";
break;
case Type.B:
string variable = "y";
break;
}
ただし、ロジック上、型が の場合、最初の宣言はヒットしないはずですType.B
。switch ステートメント内のすべての変数は単一のスコープに存在し、ロジックが処理される前に作成/割り当てられますか?