Нулевая ссылка c# - PullRequest
       5

Нулевая ссылка c#

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

Я пишу код, в котором вы можете искать имя, и у преподавателей появятся всплывающие окна и т.д. c ..

однако я не совсем уверен, почему, но я получаю объект ссылка не установлена ​​на экземпляр объекта ошибка я пропустил что-то, что я знаю, кто-то может мне помочь? я пробовал разные методы не сработали ... вот мой код:

public partial class MainWindow : Window
    {
        Course my = new Course();
        public class Course
        {

            public string[] Name { get; set; }
            public string[] Subject { get; set; }
            public string[] Hour { get; set; }

            public Course(string[] name, string[] subject, string[] hour)
            {
                this.Name = name;
                this.Subject = subject;
                this.Hour = hour;

            }
        }

        public MainWindow()
        {
            InitializeComponent();


            my.Name[0] = "Ali";
            my.Name[1] = "Sefer";

            my.Subject[0] = "INFORMATIKA";
            my.Subject[1] = "ENGLISH";

            my.Hour[0] = "12";
            my.Hour[1] = "22";

        }

        private void searchButton_Click(object sender, RoutedEventArgs e)
        {
            Find();
        }


        private void Find()
        {

            int index = 0;
            string wanted = wantedName.Text;

            while (my.Name[index] != wanted && (my.Name[index] != "END"))
            {
                index++;
            }
            if (my.Name[index] == wanted)
            {
                outputLabel.Content = " " + my.Name[index] + " "  + my.Subject[index];
            }
            else
            {
                outputLabel.Content = "Name not found";
            }
        }


    }
}

1 Ответ

2 голосов
/ 19 апреля 2020

Вы используете массивы без их инициализации. Хотя вы определили конструктор для вашего Course класса, который принимает значения для массивов, вы используете конструктор по умолчанию. Попробуйте вызвать свой собственный конструктор с аргументами вроде

Course my = new Course(new string[2], new string[2], new string[2]);

Прежде чем вы сможете присвоить значение элементу, подобному my.Name[0], вы должны убедиться, что my.Name ссылается на выделенный массив, что означает, что есть память доступны для ваших элементов.

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