繁体   English   中英

Null 参考 c#

[英]Null reference c#

我正在编写一个代码,您可以在其中搜索名称,然后会弹出所教的科目等。

但是我不太确定为什么,但我得到Object 参考未设置为 object 错误的实例我缺少我知道的东西,有人可以帮我吗? 我尝试了不同的方法并没有真正起作用......这是我的代码:

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


    }
}

您正在使用 arrays 而不初始化它们。 虽然您已经为Course class 定义了一个构造函数,该构造函数采用 arrays 的值,但您使用的是默认构造函数。 尝试使用 arguments 调用您自己的构造函数

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

在您可以为my.Name[0]类的元素分配值之前,您必须确保my.Name引用的是分配的数组,这意味着您的元素有 memory 可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM