我有一個3D數組,我正在以這種方式訪問Array(int x, int y, int z)
。我想知道的是,如果可能有一個結構體,其中包含xyz,那麼我可以這樣使用它:Array(struct xyz).
如果是這樣,那麼該怎麼做?使用結構作爲多維數組索引
爲什麼我會想要這樣做的原因是,這對我來說會更容易讀寫,而且它會更簡單,並且不易出錯。使維護更大的圖像更容易。
我知道我可以做,有它自己的方法的一類,但因爲我有很多類,並把它應用到每一個會讓我很快失去可讀性,使用結構直接是如果有一個更好的選擇。
例子:
public struct xyz
{
public int x, y, z;
public xyz(int X, int Y, int Z)
{
x = X;
y = Y;
z = Z;
}
}
private void Test()
{
int(,,) Array = new int()
{
{
{0,0},
{0,0},
},
{
{0,0},
{0,0},
}
};
xyz XYZ = new xyz(0,0,0);
Array[XYZ] = 1; // this instead of
Array[XYZ.x, XYZ.y, XYZ.z] = 1 // this
}
你爲什麼要扭轉一切的爲C#外殼的指導方針?這很讓人分心... – x0n 2012-02-15 01:31:05
你能嗎?不,你不能,那不是陣列工作的方式。您可以創建擴展方法,但接受它們並使用它們。 – 2012-02-15 01:31:52
爲什麼在問題標記爲C#時使用VB索引語法? – phoog 2012-02-15 03:42:11