关于在嵌套if中使用变量

Ser*_*ity -3 c#

if(){
      String var=1; 
      if(var==-1){
        //do this
      }
      else
      {
         if()
         {        
           String myString=var; //This is where I want to use var
         }
      }
}
Run Code Online (Sandbox Code Playgroud)

现在myString没有被赋值为var..why是什么?它是嵌套if..it应该得到的值..不是吗?

KMå*_*Mån 5

以下代码似乎工作正常:

if (true)
{
    String var = "1";
    if (var == "-1") {/*DoSomething()*/ }
    else
    {
        if (true)
        {
            String myString = var; //Gives 1 in myString!
            MessageBox.Show(myString);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Microsoft .NET中的变量和方法范围是了解范围界定方式的一个很好的参考.

顺便说一句,var是3.5及以上使用的类型; 应该避免命名类似于类型名称的变量.