using(some code)
{
var b = ....
}
b = ...
Error:
名 'B' は現在のコンテキスト内に存在しないの編集、
[OK]を何か別のものを示して
using(some code)
{
var b = ....
}
b = ...
Error:
名 'B' は現在のコンテキスト内に存在しないの編集、
[OK]を何か別のものを示して
これを行うことはできますか?
for (int i = 0; i < 10; i++)
{
int j = 1;
}
int j = 2;
答えはどこにでもそれはかなり一貫性の意味NOです。今、それは理由を尋ねます。 Answerこの質問に対して同じローカル変数宣言スペースまたはネストされたローカル変数宣言スペースに同じ名前の2つのローカル変数があることは不正です。そして、上記の場合、Jの宣言は同じネストされたスコープ内にあります。
えええええええええば...スコープ変数はカスケードします。変数スコープの子スコープからスコープされた変数にアクセスすることができます...それはたくさんの "スコープ"です – gislikonrad
正しいコードがあるべきである:あなたがそのブロックのブロック({})内で宣言外部変数を使用することができない
var b = something;
using(some code)
{
b = smth;
}
b = smth;
。
それは問題ではありません。 –
"ブロックのローカル変数宣言スペースにはネストされたブロックが含まれているため、ネストされたブロック内では、囲むブロック内のローカル変数と同じ名前のローカル変数を宣言することはできません。 Variable Scopes, MSDN
+1:最初のコンパイラエラーは常に私を困惑させました。 –
これはSOの次の記事に関連しているようです:http://stackoverflow.com/questions/6156449/why-cant-a-duplicate-variable-name-be-declared-in-a-nested-local-scope – DarkKnight
http ://stackoverflow.com/questions/4649947/why-doesnt-c-sharp-allow-me-to-use-the-same-variable-name-in-different-scopes – Karthik