C # мәтіндік жәшігіндегі мәндерді қалай қосу керек

Мәтін ұясында мән қосу әдісі туралы білмеймін. Бұл код:

       private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (starecivilaComboBox.SelectedIndex == 0)
        {
            MessageBox.Show("This selection is not valid!");
        }
        else if (starecivilaComboBox.SelectedIndex == 1)
        {
            int score = 4;
        }
        else if (starecivilaComboBox.SelectedIndex == 2)
        {
            int score = 1;
        }
        else if (starecivilaComboBox.SelectedIndex == 3)
        {
            int score = 3;
        }
        else if (starecivilaComboBox.SelectedIndex == 4)
        {
            int score = 2;
        }

    }

Мен мәтіндік жәшігіндегі бағалау мәнін енгізгім келеді, сондықтан ол combobox ішінен таңдаған әр элементтің есебін көрсетеді. Мен бұған тырысамын:

        private void scoringTextBox_TextChanged(object sender, EventArgs e)
    {
        scoringTextBox.Text = score.toString();
    }

Бірақ ол оны мойындамайды. Қате: Бұл мәнмәтінде «бағалау» атауы жоқ. Бұл жұмысты қалай жасауға болады?

Рақмет сізге.

2
Бұл әдіспен оны анықтамайсыз ба?
қосылды автор ChiefTwoPencils, көзі

7 жауаптар

@PsNytrancez жауаптары сіз үшін ең қарапайым болса да, айнымалылардың қалай жұмыс істейтінін білмей, C# -ке дейін жете алмайсыз.

Мәселе төмендегідей сызықтармен:

else if (starecivilaComboBox.SelectedIndex == 1)
{
    int score = 4;
}

бұл айнымалы «score» жасайсыз, бірақ айнымалы екі жақша «{» және «}» арасында ғана болады. Мәні шын мәнінде сақтау үшін қамту саласын (нұсқаулық бейне) кеңейту керек. егер сіз барлық сызықтарды тек оқу үшін өңдейтін болсаңыз

else if (starecivilaComboBox.SelectedIndex == 1)
{
    score = 4;
}

орнына оны әдіс декларациясының сыртына қойыңыз

int score =0;

private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
   //the rest of the method.

онда сіз жақсы боласыз.

4
қосылды

ComboBox SelectedIndexChanged өңдегішінің сыртында бағалау айнымалысын жариялауыңыз керек. Сіз мұны өңдеушіде жариялап отырсыз және ол бүкіл сыныпта емес, сіздің әдісіңізде ғана қолданылады (сіздің жағдайда толық емес).

public class Form1
{
    int score = 0;
    //somewhere in the code
    score = 1; //there is no need to specify 'int' here - you will create an local variable with the same name then
}

Мен сізге оқулықтар арқылы танысуды ұсынамын өйткені мәселе өте қарапайым.

4
қосылды
Жақсы жауап. Сұрақ қойылған сұрақтарға жауап беріп қана қоймай, сұралған сұрақтарға да жауап береді.
қосылды автор C-Pound Guru, көзі
рахмет, бұл өте қарапайым, мен оны байқамай қойған жоқпын, өйткені бүгін кешке дайын боламын. Тағы да рахмет!
қосылды автор Mihai, көзі

Бұл сіздің StarecivilaComboBox_SelectedIndexChanged әдісінің ішіндегі баллыңызды жариялағандықтан, бұл әдіс жергілікті болып табылады және оның сыртына кіру мүмкін емес.

2
қосылды

Жоғарыда айтылғандай, жеке әдісіңізден тыс, бірақ сіздің сыныпыңызда баллды жариялауыңыз қажет. Коды осыған ұқсас болуы керек:

private int score = 0;

private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{

    if (starecivilaComboBox.SelectedIndex == 0)
    {
        MessageBox.Show("This selection is not valid!");
    }
    else if (starecivilaComboBox.SelectedIndex == 1)
    {
        score = 4;
    }
    else if (starecivilaComboBox.SelectedIndex == 2)
    {
        score = 1;
    }
    else if (starecivilaComboBox.SelectedIndex == 3)
    {
        score = 3;
    }
    else if (starecivilaComboBox.SelectedIndex == 4)
    {
        score = 2;
    }

}

private void scoringTextBox_TextChanged(object sender, EventArgs e)
{
    scoringTextBox.Text = score.toString();
}
2
қосылды

Бұдан кейін жасаңыз

else if (starecivilaComboBox.SelectedIndex == 4)
    {
        int score = 2;
    }

Бұны қосыңыз

scoringTextBox.Text = score.toString();
0
қосылды
 private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{

    if (starecivilaComboBox.SelectedIndex == 0)
    {
        MessageBox.Show("This selection is not valid!");
    }
    else if (starecivilaComboBox.SelectedIndex == 1)
    {
        scoringTextBox.Text = "4";
    }
    else if (starecivilaComboBox.SelectedIndex == 2)
    {
        scoringTextBox.Text = "1";
    }
    else if (starecivilaComboBox.SelectedIndex == 3)
    {
        scoringTextBox.Text = "3";
    }
    else if (starecivilaComboBox.SelectedIndex == 4)
    {
        scoringTextBox.Text = "2";
    }

}
0
қосылды

Айнымалы/объектілік бағалау үшін ауқым мәселе болып табылады шектеулі ауқымы бар айнымалы мәнге (тек функционалдық деңгейге)

класс арқылы қол жеткізуге болатындықтан, жеке айнымалы мәнді жасаңыз.

0
қосылды