我正在尝试为基于控制台的游戏创建世界地图。
在World类中,我有可以使用级别打印方法打印的字符串数组。
public static string[] A1 = new string[]
{
(" level data"),
(" level data"),
};
如果我这样做
Render.DrawLevel(World.A1);
其中Render.DrawLevel采用args:
(string[] _level)
但是,在World Class中,我想创建一个可以容纳所有Map字符串数组的二维数组。
我试过了:
public static string[,][] Map = new string[,][]
{
{ A1 , A2 },
{ B1 , B2 },
};
但如果我尝试使用:
World.Map[0,0]
作为我打印水平的参数,我得到的错误是NULL
,而不是字符串[] A1。
如何创建二维数组数组,并正确引用string []参数?
非常感谢,
翅片。
编辑:错误地将代码复制为'static void'而不仅仅是'static'。
答案 0 :(得分:2)
在数组初始化后放置Map
初始化。在初始化Map
期间,A1,A2,B1,B2等于null。
语法非常好。
这可以按预期工作:
public static string[] A1 = new string[]
{
(" level data 1"),
(" level data 2"),
};
public static string[] A2 = new string[]
{
(" level data 1"),
(" level data 2"),
};
public static string[] B1 = new string[]
{
(" level data 1"),
(" level data 2"),
};
public static string[] B2 = new string[]
{
(" level data 1"),
(" level data 2"),
};
public static string[,][] Map = new string[,][]
{
{ A1, A2 },
{ B1, B2 },
};
答案 1 :(得分:1)
二维数组本质上是一个大小相等的数组。您可以将其可视化为矩阵,每列(或行,并不重要)作为单独的数组。那么第一行(列)中的元素将是每个数组的第一个元素。你正在做的是尝试创建一个二维数组数组。
this上的最佳答案是关于您的问题的精彩读物。
答案 2 :(得分:0)
您对地图的签名不正确,它可能无效并且是一个多维字符串数组。将其更改为:
public static string[,][] Map = new string[,][]
{
{A1,A2 },
{B1,B2 },
};