在C#代码中看不到变量
本文关键字:看不到 变量 代码 | 更新日期: 2023-09-27 18:16:12
学习C#时遇到了障碍。
为什么这里不使用变量"number"?
public partial class Form1 : Form
{
static string labelText = "";
static string number = "";
public Form1()
{
InitializeComponent();
}
private void serialNumber_TextChanged(object sender, EventArgs e)
{
string number = this.serialNumber.Text;
}
我不断收到一个警告,字段"number"已分配但未使用。
string number = this.serialNumber.Text;
此行创建一个新字符串。
这样可以避免发出警告
公共分部类Form1:Form{
static string labelText = ""; static string number = ""; public Form1() { InitializeComponent(); } private void serialNumber_TextChanged(object sender, EventArgs e) { number = this.serialNumber.Text; }
string number
声明了一个新的局部变量,它隐藏了静态成员变量。
更改这些行:
static string number = "";
private void serialNumber_TextChanged(object sender, EventArgs e)
{
string number = this.serialNumber.Text;
}
至
private string number = "";
private void serialNumber_TextChanged(object sender, EventArgs e)
{
number = this.serialNumber.Text;
}
在serialNumber_TextChanged
方法中,您声明了一个名为number
的局部变量。所以,如果这是您的完整代码,那么除了静态初始化之外,您永远不会实际向Form1.number
分配任何东西。
这正是发生的事情:您正在为变量number
分配一个值,然后您不对该变量执行任何操作。
首先,警告是有效的,并且与static
成员有关,事实上,该成员已被分配且从未使用过。serialNumber_TextChanged
中的一个是该方法的局部,并且根据定义是不同的。
这个:"为什么这里不使用变量‘数字’?"。。。我不明白。
发生这种情况是因为指令string number = this.serialNumber.Text;
中的string
,它声明了一个新变量,与类字段不同,尽管名称相同。删除string
修饰符,指令将引用已声明的类字段。