2011-12-24 8 views
1

何か助けてください。文字列を入力するか、またはその内部で試してみてください。

これはおそらく信じられないほど簡単な解決策ですが、ifタグ内で値を宣言しようとすると、外部からそれらを呼び出そうとすると、エラー '' x 'が存在しません現在のコンテキスト '

何か提案がありますか?ここに、私が意味するものの例があります。

try { 
    bleh = 5; } 

x = bleh 

答えて

2

tryブロックの外側に変数を宣言してください。変数を宣言すると、その変数を割り当てることができますが、scopeにしかアクセスできません。これはプログラミング言語の基本概念であり、上にリンクされた記事を読むべきです。

int bleh; 
if (somevalue == 0) 
{ 
bleh = 5; 
} 
else if (somevalue == 1) 
{ 
bleh = 2; 
} 

x = bleh 
+0

しかし:あなたはこのような何かをする必要がありますいくつかの値は1です。編集:私はあなたが意味することを知っている^ ^ありがとう – user1071461

2

if/tryの外側に宣言してください。あなたのコードで

int blah; 

if (somevalue == 0) 
{ 
    bleh = 5; 
} 
else if (somevalue == 1) 
{ 
    bleh = 2; 
} 

x = bleh  

、変数blehはそのtry { }エリア内でのみ利用可能です:あなたはあなたの変数を宣言するスコープブロックすることを持っている

int bleh; 
try 
{ 
    bleh = 5; 
} 

x = bleh 
1
int bleh = 0; 
try 
{ 
    bleh = 5; 
} 
x = bleh 
1
int bleh=0; 
try 
{ 
    bleh = 5; 
} 

x = bleh 
2

。これはif {},switch {},using {}などに当てはまります。

1

try/ifブロック内に変数が宣言されています。したがって、変数の範囲は、 "}"行が実行されたときに終了します。ちょうどsomeValueのが0であるならば、私は、xが異なる計算をしたいとしましょう、それはおそらくshoulda例として場合に使用、それらの内側にする必要があり、問題だ

int bleh = 0; 
try 
{ 
    bleh = 5; 
}catch(Exception ex){} 

x = bleh 
関連する問題