-1

(我需要这个没有实际功能,但我只是想知道。)

想象一下我传递一个bool[,]. 这bool[,]被命名为grid1or grid2,视情况而定。

我想知道我是否可以执行以下操作:

void CheckGrid(bool[,] grid, int number)
{
    for (int x = 0; x <= gridXmax - 1; x++)
    {
        for (int y = 0; y <= gridYmax - 1; y++)
        {
            if(grid + number[x,y]) //this will check against grid1 or grid2, depending on int number
                //logic depends on whether it's grid1 or grid2
        }
    }
}

根据其他语言的问题猜测,这可能是不可能的。但你永远不知道:)

我很可能在这里遗漏了一些明显的东西——我并没有真正的经验。

4

5 回答 5

3

您可以创建一个网格数组,然后使用数字值进行检查。

List<bool[,] grids = new List<bool[,]>();

然后

if (grids[number][x,y])...
于 2012-02-10T20:44:01.023 回答
2

否 -对象没有名称,只有变量有名称。因此,尽管您传递了对数组的引用,但该方法无法知道您是否碰巧使用了为参​​数调用grid1的变量或调用的变量grid2

通常当有这样的问题时,答案包括说您可以使用反射来按名称访问成员变量,但这样做通常是一个坏主意 - 并且使用作为集合的单个变量是一个更好的主意。但是,在您的问题中,无论如何您都不清楚您要做什么......如果它试图确定“对象的名称”,那么这通常是绝对不可行的。

于 2012-02-10T20:42:09.227 回答
1

你最好将一个标志传递给你的函数,这将允许你根据你是在处理 grid1 还是 grid2 来更新你的逻辑。

于 2012-02-10T20:42:59.067 回答
0

当您使用类似 $$var 的东西时,PHP 中存在这种事情,其中​​ $var 将持有 grid1 并变成 $grid1

我唯一能建议的是在字典中使用键/值对并将数字连接到“网格”

于 2012-02-10T20:43:08.400 回答
0

向您的数组添加一个维度。

void CheckGrid(bool[,,] grid, int number)
{
    for (int x = 0; x <= gridXmax - 1; x++)
    {
        for (int y = 0; y <= gridYmax - 1; y++)
        {
            if(grid[number, x,y]) //this will check against grid1 or grid2, depending on int number
                //logic depends on whether it's grid1 or grid2
        }
    }
}  
于 2012-02-10T20:44:03.833 回答