我正在使用粒子列表。
List<Particle> particles;
通常我将此列表放在我的Simulation类中。它可以计算粒子的位置,速度和其他属性。
其他一些类需要此粒子数据进行输出和后期处理。
可以创建静态类
static class Particles
{
static List<Particles> plist;
}
从其他类访问粒子数据?
答案 0 :(得分:2)
我建议尽可能远离静态类/方法。它们倾向于导致代码的高度耦合。虽然在某些情况下使用它们要快得多(希望有节制)。
我不太确定你的问题是什么,但我至少建议更改静态类以显示属性而不是字段。
public static class Particles
{
public static List<Particles> PList { get; set; }
}
或
public static class Particles
{
private static List<Particles> _plist;
public static List<Particles> PList
{
get { return _plist; }
set { _plist = value; }
}
}
通过这种方式,您可以更多地封装列表。例如,您可以在getter或setter期间检查空值。
答案 1 :(得分:0)
这里至少有两个选项:
在每个操作粒子的类中创建一个IList<Particles>
属性。
在每个运行粒子的类中,创建一个私有的IList<Particles>
字段和一个将这样的列表作为参数的构造函数。
这些选项中的任何一个都将保留列表的封装。