或阿呆のブログ

巷では、武器商人@ダーツで通っています。Python好き好きプログラマーです。芥川龍之介、太宰治が好きです。

ローカル変数 'str' はこのスコープで既に定義されています。

同じ変数を同じスコープ内で二度宣言するとそう怒られる。使い捨ての変数にまでそこまで言われるのがうざい。。。スコープを区切ってやれば、怒られない。

Sample Code(サンプルコード)

int num = 1;
            switch (num)
            {
                case 0:
                    {
                        string str = num.ToString();
                    }
                    break;
                case 1:
                    {
                        string str = num.ToString();
                    }
                    break;
                default:
                    break;

            }

と。

ご存知の人は多いが、{}を使うと、スコープが区切られる。ループカウンタでint iなんかを宣言して、次のループでも宣言しても怒られないのはそのため。まぁ、そのそもforループなんて使わんけど・・・。foreachを使えと。もうちょっと変数の型に対して甘くしてくれはしないだろうか?そして、安全性も保ちつつ・・・。