C# 当我';我正在创建一个数组,它显示为空
我目前正试图把独白作为一个小项目。 我试图创建一个Tile数组,但是当我运行代码时,我得到一个nullreferenceException,因为Tile[]Tiles显示为null。任何建议都很好C# 当我';我正在创建一个数组,它显示为空,c#,arrays,C#,Arrays,我目前正试图把独白作为一个小项目。 我试图创建一个Tile数组,但是当我运行代码时,我得到一个nullreferenceException,因为Tile[]Tiles显示为null。任何建议都很好 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Monolopy { class Board {
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Monolopy
{
class Board
{
public Tile[] Tiles { get; }
GoTile tile1;
BuildingTile tile2;
JailTile tile3;
BuildingTile tile4;
BuildingTile tile5;
BuildingTile tile6;
GoToJailTile tile7;
BuildingTile tile8;
BuildingTile tile9;
ChanceTile tile10;
BuildingTile tile11;
BuildingTile tile12;
public Board()
{
Tile[] Tiles = {
tile1 = new GoTile(),
tile2 = new BuildingTile(2, "Old Kent Road", 20, 200),
tile3 = new JailTile(),
tile4 = new BuildingTile(4, "WhiteHall", 40, 400),
tile5 = new BuildingTile(5, "Euston Road", 50, 500),
tile6 = new BuildingTile(6, "bow Street", 60, 600),
tile7 = new GoToJailTile(),
tile8 = new BuildingTile(8, "Strand", 70, 700),
tile9 = new BuildingTile(9, "Fleet Street", 80, 800),
tile10 = new ChanceTile(),
tile11 = new BuildingTile(11, "Park Lane", 90, 900),
tile12 = new BuildingTile(12, "Mayfair", 100, 1000)
};
}
}
}您正在重新说明构造函数中的分幅,因此从未设置实例属性。只需在构造函数中省略Tile[]类型
另外,将(私有)setter添加到属性 构造函数中的Tile数组是构造函数中的局部变量,因此任何使用类Board的属性Tiles的代码都将为空。成员平铺实际上从未初始化
尝试将局部变量的值分配给属性。在填充局部变量时,在构造函数中删除平铺之前的
平铺[]
,然后定义第二个平铺
,该平铺只在电路板构造函数期间有效。从线路板构造函数中删除磁贴[]
,以使用磁贴属性。