Зменная не разглядаецца ў C # код

Навучанне C# і ўрэзаўся ў перашкоду.

Чаму не пераменная «колькасць» выкарыстоўваецца тут?

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

Я атрымліваю папярэджанне, што поле "нумар" прысвойваецца, але не выкарыстоўваецца.

0
Вы маскіраванне зменную класа ў лакальнай вобласці бачнасці.
дададзена аўтар Jeremy Holovacs, крыніца
Вы маскіраванне зменную класа ў лакальнай вобласці бачнасці.
дададзена аўтар Jeremy Holovacs, крыніца
Таму што вы не выкарыстоўваеце яго, вы проста прызначаючы яго - гэтак жа, як памылка кажа.
дададзена аўтар George Johnston, крыніца
@CodyGray Ваш каментар з'яўляецца значна больш каштоўным, чым адказаў ..
дададзена аўтар Soner Gönül, крыніца
@CodyGray Ваш каментар з'яўляецца значна больш каштоўным, чым адказаў ..
дададзена аўтар Soner Gönül, крыніца
Шмат адказаў хутка пісталет-в-захад публікацыя ... Мы ўсё было б нашмат лепш, калі б патэнцыяльнымі Запатрабаваліся час адказваюць каб напісаць што-небудзь падрабязнае і павучальнае. Гонка за тое, што першы скончыўся, ўсё страчана.
дададзена аўтар Cody Gray, крыніца
Шмат адказаў хутка пісталет-в-захад публікацыя ... Мы ўсё было б нашмат лепш, калі б патэнцыяльнымі Запатрабаваліся час адказваюць каб напісаць што-небудзь падрабязнае і павучальнае. Гонка за тое, што першы скончыўся, ўсё страчана.
дададзена аўтар Cody Gray, крыніца
Якая мэта гэтых статычных палёў?
дададзена аўтар vc 74, крыніца
@CodyGray Згодны, я думаю, гэтае пытанне лепш адказаць іншым пытаннем: «Што вы спрабуеце дасягнуць»
дададзена аўтар vc 74, крыніца
@CodyGray Згодны, я думаю, гэтае пытанне лепш адказаць іншым пытаннем: «Што вы спрабуеце дасягнуць»
дададзена аўтар vc 74, крыніца
Гэта значыць, што ён кажа. Вы прызначылі яго, але вы не выкарыстоўваеце яго ў любым месцы. якім чынам яго кампілятара казаць вам не трэба прызначыць яго, калі вы не збіраецеся яго выкарыстоўваць.
дададзена аўтар arunlalam, крыніца
Таму што вы толькі прысвоіць яму значэнне ( нумар радка = this.serialNumber.Text; ), але вы ніколі не выкарыстоўваць яго ў любой аперацыі.
дададзена аўтар Spaceman, крыніца
Таму што вы толькі прысвоіць яму значэнне ( нумар радка = this.serialNumber.Text; ), але вы ніколі не выкарыстоўваць яго ў любой аперацыі.
дададзена аўтар Spaceman, крыніца

11 адказы

string number = this.serialNumber.Text; this line creates a new string.

паспрабаваць гэта, каб пазбегнуць папярэджанняў

<�Р> грамадскага частковага класа Form1: Form       {</Р> <�Папярэдне> статычная радок LabelText = ""; статычная радок лік = «»; грамадскі Form1 () {     InitializeComponent (); } прыватная пустата serialNumber_TextChanged (аб'ект адпраўніка, EventArgs е) {     лік = this.serialNumber.Text; }
3
дададзена
Многія з вас быў адказ. Я хачу зрабіць статычную частка дэкларацыі, наколькі я ведаю. Я хачу, каб апошняе значэнне, якое трэба памятаць, для выкарыстання ў іншых частках майго кода.
дададзена аўтар user2440720, крыніца

string number = this.serialNumber.Text; this line creates a new string.

паспрабаваць гэта, каб пазбегнуць папярэджанняў

<�Р> грамадскага частковага класа Form1: Form       {</Р> <�Папярэдне> статычная радок LabelText = ""; статычная радок лік = «»; грамадскі Form1 () {     InitializeComponent (); } прыватная пустата serialNumber_TextChanged (аб'ект адпраўніка, EventArgs е) {     лік = this.serialNumber.Text; }
3
дададзена
Многія з вас быў адказ. Я хачу зрабіць статычную частка дэкларацыі, наколькі я ведаю. Я хачу, каб апошняе значэнне, якое трэба памятаць, для выкарыстання ў іншых частках майго кода.
дададзена аўтар user2440720, крыніца

string number declares a new local variable which hides the static member variable.

2
дададзена

string number declares a new local variable which hides the static member variable.

2
дададзена

У вашым serialNumber_TextChanged метад вы аб'яўляеце <�моцны> лакальны пераменная нумар . Так што, калі ваш поўны код, які вы ніколі не прыпісваць нічога Form1.number акрамя статычнай ініцыялізацыі.

1
дададзена

У вашым serialNumber_TextChanged метад вы аб'яўляеце <�моцны> лакальны пераменная нумар . Так што, калі ваш поўны код, які вы ніколі не прыпісваць нічога Form1.number акрамя статычнай ініцыялізацыі.

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;
}
1
дададзена
Гэта яшчэ поле ўзроўню класа. Я проста сказаў, каб абнавіць радкі ў код, які я напісаў.
дададзена аўтар Azhar Khorasany, крыніца

Гэта менавіта тое, што адбываецца: вы прысвойваеце значэнне зменнай нумар , а затым вы нічога з гэтай зменнай не рабіць.

0
дададзена

Па-першае, папярэджанне дзейнічае, і ставіцца да </статычны код> элемента, які, па сутнасці, прызначаецца і ніколі не выкарыстоўваецца. Адзін у serialNumber_TextChanged з'яўляецца лакальнай для гэтага метаду і па вызначэнні, розныя.

Гэта: «Чаму не пераменная" лік ", які выкарыстоўваецца тут» ... Я не разумею.

0
дададзена
@CodyGray Магчыма, але гэта тое, што я прашу ОП растлумачыць.
дададзена аўтар DonBoitnott, крыніца
Там іншы нумар пераменная у класе-вобласці, якая ў цяперашні час схаваным мясцовым колькасці зменнай. Гэта іншае нумар пераменная ён кажа.
дададзена аўтар Cody Gray, крыніца
Кодзі, ты маеш рацыю.
дададзена аўтар user2440720, крыніца

Па-першае, папярэджанне дзейнічае, і ставіцца да </статычны код> элемента, які, па сутнасці, прызначаецца і ніколі не выкарыстоўваецца. Адзін у serialNumber_TextChanged з'яўляецца лакальнай для гэтага метаду і па вызначэнні, розныя.

Гэта: «Чаму не пераменная" лік ", які выкарыстоўваецца тут» ... Я не разумею.

0
дададзена
@CodyGray Магчыма, але гэта тое, што я прашу ОП растлумачыць.
дададзена аўтар DonBoitnott, крыніца
Там іншы нумар пераменная у класе-вобласці, якая ў цяперашні час схаваным мясцовым колькасці зменнай. Гэта іншае нумар пераменная ён кажа.
дададзена аўтар Cody Gray, крыніца
Кодзі, ты маеш рацыю.
дададзена аўтар user2440720, крыніца

Гэта адбываецца з-за радок у інструкцыі нумар радка = this.serialNumber.Text; , які абвяшчаючы новую зменную, выдатную ад поля класа, нягледзячы на ​​тое ж самае імя. Выдаліце ​​ радок мадыфікатар і каманда будзе ставіцца да поля класа ўжо абвешчана.

0
дададзена