Вызов приватной функции void из метода нажатия кнопки - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь вызвать приватную функцию void из метода нажатия кнопки. Значение selectedChoice выбирается из поля со списком. Я отладил и обнаружил, что значение selectedChoice выбирается правильно и даже входит в условие If внутри метода нажатия кнопки. Просто функции не вызываются.

Каждый метод находится внутри класса Form1.

namespace Test
{
    public partial class Form1 : Form
    {     
      private void button1_Click(object sender, EventArgs e)
        {
            if(selectedChoice == "ABC")
            {
                Function1();
                Function2();
            }

Код поля со списком -

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(comboBox1.SelectedIndex!=0)
            {
                selectedChoice = comboBox1.SelectedItem.ToString();

            }
        }

Функции, которые я пытаюсь вызвать, просто определены как

 private void Function1()
  { 
      //do something

   }

1 Ответ

0 голосов
/ 03 апреля 2020

Вы пытаетесь выполнить операцию сравнения

selectedChoice == "ABC"

Оператор

 ==

не должен использоваться для строки. Этот оператор проверит, равны ли id элемента и компаратора. Пожалуйста, используйте

selectedChoice.Equals("ABC")

вместо.

Тем не менее методы вызываются с помощью этого кода:

private string selectedChoice = "ABC";

    private void button1_Click(object sender, EventArgs e)
    {
        if(selectedChoice.Equals("ABC"))
        {
            Function1();
            Function2();
        }
    }

    private void Function2()
    {

    }

    private void Function1()
    {

    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        if(comboBox1.SelectedIndex!=0)
        {
            selectedChoice = comboBox1.SelectedItem.ToString();

        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...