C# - 字符串数组的二维数组
C# - 2D Array of String Arrays
我正在尝试为基于主机的游戏创建世界地图。
In the World class 我有可以使用水平打印方法打印的字符串数组。
public static string[] A1 = new string[]
{
(" level data"),
(" level data"),
};
如果我这样做就可以了
Render.DrawLevel(World.A1);
其中 Render.DrawLevel 接受参数:
(string[] _level)
但是,在 World Class 中,我想创建一个二维数组来容纳所有 Map 的字符串数组。
我试过:
public static string[,][] Map = new string[,][]
{
{ A1 , A2 },
{ B1 , B2 },
};
但如果我尝试使用:
World.Map[0,0]
作为我打印的级别参数,我得到一个错误,这是 NULL
,而不是字符串 [] A1。
我如何创建一个二维数组数组,并正确引用它作为 string[] 参数?
非常感谢,
Fin.
编辑:错误地将代码复制为 'static void' 而不仅仅是 'static'.
你的Map签名有误,不能为void和多维字符串数组。将其更改为:
public static string[,][] Map = new string[,][]
{
{A1,A2 },
{B1,B2 },
};
二维数组本质上是由大小相等的数组组成的数组。您可以将它想象成一个矩阵,每一列(或行,并不重要)作为一个单独的数组。那么第一行(列)中的元素将是每个数组的第一个元素。您正在做的是尝试创建一个二维数组数组。
this 上的最佳答案是关于您的问题的精彩读物。
将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 },
};
我正在尝试为基于主机的游戏创建世界地图。
In the World class 我有可以使用水平打印方法打印的字符串数组。
public static string[] A1 = new string[]
{
(" level data"),
(" level data"),
};
如果我这样做就可以了
Render.DrawLevel(World.A1);
其中 Render.DrawLevel 接受参数:
(string[] _level)
但是,在 World Class 中,我想创建一个二维数组来容纳所有 Map 的字符串数组。
我试过:
public static string[,][] Map = new string[,][]
{
{ A1 , A2 },
{ B1 , B2 },
};
但如果我尝试使用:
World.Map[0,0]
作为我打印的级别参数,我得到一个错误,这是 NULL
,而不是字符串 [] A1。
我如何创建一个二维数组数组,并正确引用它作为 string[] 参数?
非常感谢,
Fin.
编辑:错误地将代码复制为 'static void' 而不仅仅是 'static'.
你的Map签名有误,不能为void和多维字符串数组。将其更改为:
public static string[,][] Map = new string[,][]
{
{A1,A2 },
{B1,B2 },
};
二维数组本质上是由大小相等的数组组成的数组。您可以将它想象成一个矩阵,每一列(或行,并不重要)作为一个单独的数组。那么第一行(列)中的元素将是每个数组的第一个元素。您正在做的是尝试创建一个二维数组数组。
this 上的最佳答案是关于您的问题的精彩读物。
将Map
初始化放在数组初始化之后。 Map
.
语法非常好。
这按预期工作:
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 },
};