我正在用C#編程一個遊戲,我正在使用SoA模式來處理性能關鍵組件。C#中的數組結構 - 減少樣板代碼寫作
下面是一個例子:
public class ComponentData
{
public int[] Ints;
public float[] Floats;
}
理想情況下,我想其他的程序員才應指定該數據(如上),並用它做。然而,有些操作必須完成每個陣列,像分配,複製,成長等現在我使用的是抽象方法的抽象類來實現的,就像這樣:
public class ComponentData : BaseData
{
public int[] Ints;
public float[] Floats;
protected override void Allocate(int size)
{
Ints = new int[size];
Floats = new float[size];
}
protected override void Copy(int source, int destination)
{
Ints[destination] = Ints[source];
Floats[destination] = Floats[source];
}
// And so on...
}
這就要求程序員在每次編寫新組件時添加所有這些樣板代碼,並且每次添加一個新數組。
我試圖通過使用模板計算出來,雖然這適用於AoS模式,但它對SoA沒有太大的好處(因爲Data : BaseData<int, float>
會非常模糊)。
所以我想聽聽有關將這些數組自動「注入」到某處的想法,以減少大量的樣板代碼。
不確定我關注。難道這不會是至少相同數量的代碼寫嗎? – jesta