在 if 语句后设置字符串变量

问题描述 投票:0回答:1

在 if() 语句中设置字符串变量后,该变量不存在。

if (wallThicknessCBO.SelectedItem.ToString() == "2x6")
{
    if (wallH <= 8)
    {
        MessageBox.Show("2x6 and 8");
        string w_Prod_Code = "2608STUD";
        MessageBox.Show(w_Prod_Code);//messagebox shows w_Prod_Code
    }

}

//MessageBox.Show(w_Prod_Code); //says w_Prod_code does not exist

我在方法开始时尝试了此操作,但第二个消息框仅显示为空白。

string w_Prod_Code = "";
public void WallThickness()

我需要做什么才能使用 if 语句中的字符串变量?

c# scope field variable-assignment
1个回答
1
投票

改变

string w_Prod_Code = "2608STUD";

w_Prod_Code = "2608STUD";

或者更好

this.w_Prod_Code = "2608STUD";

现在问题的代码定义了两个不同的东西,名为

w_Prod_Code
:

  • 一个字段
    w_Prod_Code
    ,其值从
    ""
  • 永远不会改变
  • 在嵌套循环内定义的变量,在声明它的块之外不可见。该变量隐藏其作用域中的字段

可能有一条 Intellisense 或 Resharper 消息警告该变量正在隐藏该字段。

对变量和字段使用不同的命名是一个非常好的主意。如果您打算使用相同的名称,请确保使用

this.
来引用字段,例如
this.prod_code

© www.soinside.com 2019 - 2024. All rights reserved.