我在C#中編寫一個Vector類,並覺得索引器會是一個很好的補充。我是否需要擔心索引超出範圍?使用C#索引器時的索引安全性?
也許代碼示例會更清楚:
class Vector3f
{
public Vector3f(float x, float y, float z)
{
this.X = x;
this.Y = y;
this.Z = z;
}
public float X {get; set;}
public float Y {get; set;}
public float Z {get; set;}
public float this[int pos]
{
get
{
switch (pos)
{
case 0: return this.X; break;
case 1: return this.Y; break;
case 2: return this.Z; break;
}
}
set
{
switch (pos)
{
case 0: this.X = value; break;
case 1: this.Y = value; break;
case 2: this.Z = value; break;
}
}
}
}
我應該把default
情況下,我switch
報表?它應該做什麼?
編輯:這是一個相當愚蠢的問題。如果沒有default
的情況,上面的代碼甚至不會編譯。再加上傑森在下面的實施非常棒。
這很漂亮。 – Anton 2009-12-02 02:37:39
如果需要,索引器可以更容易地遍歷Vector的座標。 – mkenyon 2009-12-02 02:38:57
偉大的實施。 – Alex 2009-12-02 02:39:13