0

我想知道为什么我需要在下面的代码中两次输入返回语法,

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

  return result;
}

它会出错,说 The name 'result' does not exist in the current context。

但无论哪种方式,都有结果变量。唔..

所以我改变了这样的代码,

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代码块中的声明..我个人无论如何都会建议第二个代码块(更正后)但是在这里......

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

  return result;
}

如果您打算使用第二个块,您可以将其简化为:

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 回答