无法使用嵌套变量

时间:2015-05-22 07:46:54

标签: c# asp.net

我不能使用嵌套块中声明的变量。

示例:

if(condition){
    var test = "success";
    {

如果我尝试使用测试变量,我会收到编译错误:

  

CS0103:名称'测试'在当前上下文中不存在

3 个答案:

答案 0 :(得分:2)

要在块外部使用变量,您需要在块外声明它。

由于即使您不在块中运行代码,变量也必须具有值,您必须设置初始值:

string test = null;
if (condition) {
  test = "success";
}

或使用else块来设置值,否则:

string test;
if (condition) {
  test = "success";
} else {
  test = null;
}

答案 1 :(得分:0)

这是因为它是一个local变量,只能在那些大括号中访问。不在外面。

为了使其可以在外部访问,您可能希望根据需要将其声明出函数或方法之外或页面的开头。

查看localglobal变量以及变量scope的概念。

应该这样做。

答案 2 :(得分:0)

你可以简单地把它写成:

var test = condition ? "success" : "failure";
...
// use test as required.

(当条件为假时,将“失败”替换为您想要测试的任何值)。