Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C#代码中看不到变量_C#_Variables_Scope - Fatal编程技术网

在C#代码中看不到变量

在C#代码中看不到变量,c#,variables,scope,C#,Variables,Scope,学习C#遇到了困难 为什么这里不使用变量“number” public partial class Form1 : Form { static string labelText = ""; static string number = ""; public Form1() { InitializeComponent(); } private v

学习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 {


这正是发生的情况:您正在为变量
number
赋值,然后不使用该变量。

string number
声明一个隐藏静态成员变量的新局部变量。

serialNumber\u TextChanged
方法中,您声明了一个local变量名为
number
。因此,如果这是您的完整代码,则除了静态初始化之外,您实际上从未为
Form1.number
分配任何内容。

首先,警告有效,并与
静态
成员相关,该成员实际上已分配且从未使用过。
序列号\u text中的成员已更改
是该方法的局部,根据定义,是不同的

这是:“为什么这里不使用变量‘number’?…我不明白。

更改这些行:

static string number = "";

private void serialNumber_TextChanged(object sender, EventArgs e)
{
    string number = this.serialNumber.Text;
}


这是因为指令
string number=this.serialNumber.Text;
中的
string
,该指令声明了一个新变量,与类字段不同,尽管名称相同。请删除
string
修饰符,指令将引用已声明的类字段。

,因为您不是使用它,你只是赋值--就像错误所说的那样。它意味着它所说的。你已经赋值,但你没有在任何地方使用它。这是编译器的说法,如果你不打算使用它,你就不需要赋值。你在局部作用域中屏蔽你的类变量。因为你只是给它赋值(
string number=this.serialNumber.Text;
),但你从来没有在任何操作中使用过它。西方有很多最快的答案被张贴出来……如果未来的回答者花时间写一些详细和有启发性的东西,我们都会过得更好。争先的竞赛已经结束,每个人都输了。在类范围内还有另一个被本地人隐藏的
数字
变量
number
变量。这是他说的另一个
number
变量。@CodyGray可能,但这正是我要OP澄清的。你们很多人都有答案。据我所知,我确实希望声明的静态部分。我希望记住最新的值,以便在我的代码的其他部分使用。它仍然是一个类vel字段。我刚才说要将行更新为我编写的代码。
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;
}