0

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;
    }

フィールド「番号」が割り当てられているが使用されていないという警告が表示され続けます。

4

7 に答える 7

3

string number = this.serialNumber.Text;この行は新しい文字列を作成します。

警告を回避するためにこれを試してください

パブリック部分クラス Form1 : フォーム {

static string labelText = "";
static string number = "";

public Form1()                                  
{
    InitializeComponent();
}

private void serialNumber_TextChanged(object sender, EventArgs e)
{
    number = this.serialNumber.Text;
}
于 2013-05-31T14:12:47.420 に答える
2

string number静的メンバー変数を非表示にする新しいローカル変数を宣言します。

于 2013-05-31T14:13:19.033 に答える
1

メソッドで、 というローカル変数serialNumber_TextChangedを宣言します。したがって、それが完全なコードである場合、静的初期化の一部に実際に何も割り当てることはありません。numberForm1.number

于 2013-05-31T14:13:26.943 に答える
1

次の行を変更します。

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;
}
于 2013-05-31T14:14:03.257 に答える
0

それがまさに起こっていることです: 変数に値を代入しているのに、その変数numberに対して何もしていません。

于 2013-05-31T14:12:48.707 に答える
0

これは、同じ名前を持っているにもかかわらず、class フィールドとは異なる新しい変数を宣言してstringいる instructionが原因で発生します。修飾子をstring number = this.serialNumber.Text;削除すると、命令は既に宣言されているクラス フィールドを参照します。string

于 2013-06-27T14:14:24.183 に答える
0

まず、警告は有効でありstatic、実際には割り当てられていて使用されていないメンバーに関連しています。の 1 つはserialNumber_TextChangedそのメソッドにローカルであり、定義上、異なります。

これは、「ここで変数 'number' を使用しないのはなぜですか?」...わかりません。

于 2013-05-31T14:13:48.483 に答える