0

なぜ以下のコードにreturn構文を2回入れる必要があるのだろうか。

public string test(){
 bool a = true;
 if(a){
   string result = "A is true";
 }else{
   string result = "A is not true";
 }

  return result;
}

「結果」という名前が現在のコンテキストに存在しないというエラーが発生します。

いずれにせよ、結果変数があります。うーん..

だから私はこのようにコードを変更しました、

public string test(){
 bool a = true;
 if(a){
   string result = "A is true";
   return result;
 }else{
   string result = "A is not true";
   return result;
 }
}

その後、それは動作します。このように使って正しいですか?

アドバイスしてください、

ありがとうございました!

4

1 に答える 1

7

コードブロックでの宣言が欠落しているだけresultです。個人的には、2番目のコードブロックをとにかく(修正した場合)提案しますが、ここでは...

public string test(){
 bool a = true;
 string result = string.Empty;
 if(a){
   result = "A is true";
 }else{
   result = "A is not true";
 }

  return result;
}

また、2番目のブロックを使用する場合は、次のように簡略化できます。

public string test(){
 bool a = true;
 if(a){
   return "A is true";
 }else{
   return "A is not true";
 }
}

またはさらに:

public string test(){
 bool a = true;

 return a ? "A is true" : "A is not true";
}

そして、同様のコードの他のいくつかの反復(文字列フォーマットなど)。

于 2012-05-24T20:08:30.923 に答える