【发布时间】:2015-08-30 01:38:59
【问题描述】:
所以我正在尝试创建一个应用程序来计算您在一次地铁运输中花费的时间量,因此我创建了一个车站类,并以正常形式创建了一个包含三行的锯齿状数组(每行代表一个不同的地铁线)所以我像这样声明数组: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;
【问题讨论】:
-
你能发布实际代码吗?同时显示错误在哪一行。
-
当你声明一个锯齿状数组时,你首先将所有维度声明为一个新数组,但是你必须沿着第一个维度进行迭代,并为每个数组声明一个长度为 X 的新数组在那个维度。请记住,锯齿状数组是数组的数组。所以你“新建”数组数组,然后“新建”其中的每个数组。
-
哦,但是如果 lines[0][0].name 指的是具有名为 .Name 的属性的 Class 或 Struct,那么您还必须初始化该 Class 或 Struct。这通常由构造函数完成,因此 . . .是的,请发布更多代码,以便我们可以看到那里发生了什么。
-
实际上,当我启动程序时会发生错误,但是当我声明名称和数字时,它会在开始时给出 NullReferenceException ,我现在明白了,我应该“新建”首先然后声明名称和编号,虽然我有一百多行错误代码,如果有人知道如何快速编辑它们,请告诉我,我的整个团队都在开发这个程序,我正在减慢它们的速度下来:(
-
Visual Studio 具有出色的查找和替换功能。甚至正则表达式匹配(我不明白)。但是,例如,如果您可以突出显示顶部代码块中的“line [”并将其替换为“new line [”,它可能会起作用。没有看到具体的代码,我无法确定。
标签: c# arrays visual-studio visual-studio-2013