不能在锯齿数组中声明对象

本文关键字:声明 对象 数组 不能 | 更新日期: 2023-09-27 18:10:34

所以我想做一个应用程序来计算你在一个地铁运输中所花费的时间,所以我创建了一个车站类,在正常的形式下,我创建了一个包含三行(每一行代表一条不同的地铁线路)的参差数组,所以我像这样声明数组:station[][] lines = new station[3][];然后我像这样声明行

lines[0] = new station[34];
lines[1] = new station[19];
lines[2] = new station[35];

,我在锯齿数组中的对象内部声明了名称和值,像这样:

lines[0][0].name = "stationname";
lines[0][0].number = 1;`

但是当我运行程序时,它给了我一个NullReferenceException,我知道我没有正确声明对象(我认为),我不知道如何正确声明它们。下面是一个更完整的代码示例:

        station[][] lines = new station[3][];
        lines[0] = new station[34];
        lines[0][0] = new station {name = "حلوان", number = 1 };
        lines[0][0].number = 1;
        lines[0][1].name = "عين حلوان";
        lines[0][1].number = 2;
        lines[0][2].name = "جامعة حلوان";
        lines[0][2].number = 3;
        lines[0][3].name = "وادى حوف";
        lines[0][3].number = 4;
        lines[0][4].name = "حدائق حلوان";
        lines[0][4].number = 5;
两个

            lines[1] = new station[19];
        lines[1][0].name = "المنيب";
        lines[1][0].number = 36;
        lines[1][1].name = "ساقية مكى";
        lines[1][1].number = 37;
        lines[1][2].name = "ضواحى الجيزة";
        lines[1][2].number = 38;
        lines[1][3].name = "محطة الجيزة";
        lines[1][3].number = 39;
        lines[1][4].name = "فيصل";
        lines[1][4].number = 40;
        lines[1][5].name = "جامعة القاهرة";
        lines[1][5].number = 41;
行3

            lines[2] = new station[35];
        lines[2][0].name = "مطار القاهرة";
        lines[2][0].number =54;
        lines[2][1].name = "السلام";
        lines[2][1].number = 55;
        lines[2][2].name = "عمر بن الخطاب";
        lines[2][2].number = 56;
        lines[2][3].name = "قباء";
        lines[2][3].number = 57;
        lines[2][4].name = "النزهة٢";
        lines[2][4].number = 58;
        lines[2][5].name = "النزهة١";
        lines[2][5].number = 59;

不能在锯齿数组中声明对象

数组初始化得很好,但是没有初始化数组中的任何对象。

:

lines[0][0] = new Station() { name = "...", number = 1 };

PS:我想你是指Station而不是station对吗?

我想可能有点混乱。我试着领会你的意思。您需要一个行数组,并且在该数组中,每行包含一个station数组。每个车站都有名字和号码。基于这种理解,下面是一些可以工作的代码,并给出了如何构建其余代码的想法。

    internal class Station
    {
        internal string name;
        internal int stationNumber;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        Station[][] line = new Station[3][]; // Assuming 3 lines total
        line[0] = new Station[34]; // This is saying line #0 (stored in element major 0) needs 34 elements, each of which will contain a Station instance
        line [0][0] = new Station { "حلوان", 1 };
        line [0][1] = new Station {"عين حلوان", 2};
        line[0][2] = new Station {"جامعة حلوان",3};
        line[0][3] = new Station {"وادى حوف",4};
        line[0][4] = new Station { "حدائق حلوان", 5 };
    }