簡體   English   中英

C# - 2D數組字符串數組

[英]C# - 2D Array of String Arrays

我正在嘗試為基於控制台的游戲創建世界地圖。

在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'。

在數組初始化之后放置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 },
    };

二維陣列本質上是具有相同大小的陣列的陣列。 您可以將其可視化為矩陣,每列(或行,並不重要)作為單獨的數組。 那么第一行(列)中的元素將是每個數組的第一個元素。 你正在做的是嘗試創建一個二維數組數組。

對最佳答案是關於你的問題一個偉大的閱讀。

您對Map的簽名不正確,它不能為void和多維字符串數組。 將其更改為:

    public static string[,][] Map = new string[,][]
        {
            {A1,A2 },
            {B1,B2 },
        };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM