我有Simulator
类,其中包含粒子的位置(_pos
),速度(_vel
)和加速度(_acc
)。借助扩展(基于Simulator.Extension
类),我想在Simulator
添加恒温器,恒压器等。为此,我需要访问扩展的位置,速度和加速度。请告诉我最好的方法。
public class Simulator
{
private Vector3[] _pos;
private Vector3[] _vel;
private Vector3[] _acc;
public class Extension
{
protected Simulator Simulator { get; set; }
protected Extension(Simulator simulator)
{
Simulator = simulator ?? throw new ArgumentNullException(nameof(simulator));
}
public abstract void DoWork();
}
...
}
具体来说,扩展程序应该能够读取_pos
(或_vel
,_acc
)的某个元素,修改它,添加或删除数组元素。我需要一个快速且线程安全的机制。