(我不需要这个实际功能,但我只是想知道。)
想象一下我传递bool[,]
的这个函数。此bool[,]
的名称为grid1
或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
}
}
}
通过其他语言的问题猜测,这可能是不可能的。但你永远不会知道:)
很可能我在这里遗漏了一些明显的东西 - 我真的没有经验。
答案 0 :(得分:3)
您可以创建一个网格数组,然后使用数字值来检查它。
List<bool[,] grids = new List<bool[,]>();
然后
if (grids[number][x,y])...
答案 1 :(得分:2)
否 - 对象没有名称,只有变量具有名称。因此,虽然您传递了对数组的引用,但该方法无法知道您是否碰巧使用名为grid1
的变量作为参数或名为grid2
的变量。
通常当有这样的问题时,答案就是说可以使用反射来按名称访问成员变量,但这样做通常是个坏主意 - 并且使用单个变量这是一个集合是一个更好的主意。但是,在你的问题中,你还不清楚你要做的是什么......如果它 试图确定“对象的名称”那么这通常是不可行的。
答案 2 :(得分:1)
最好将标志传递给您的函数,以便根据您是处理grid1还是grid2来更新逻辑。
答案 3 :(得分:0)
当您使用类似这样的内容时,PHP会存在这种情况,其中$ var将保存grid1并转换为$ grid1
我唯一可以建议的是在字典中使用键/值对并将数字连接到'grid'
答案 4 :(得分: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
}
}
}