我正在使用粒子列表。
List<Particle> particles;
通常我把这个列表放在我的模拟课上。它计算粒子的位置、速度和其他属性。
其他一些类需要此粒子数据用于输出和后处理。
是否可以创建一个静态类,
static class Particles
{
static List<Particles> plist;
}
从其他类访问粒子数据?
我正在使用粒子列表。
List<Particle> particles;
通常我把这个列表放在我的模拟课上。它计算粒子的位置、速度和其他属性。
其他一些类需要此粒子数据用于输出和后处理。
是否可以创建一个静态类,
static class Particles
{
static List<Particles> plist;
}
从其他类访问粒子数据?
我建议尽可能远离静态类/方法。它们往往会导致代码的高度耦合。尽管在某些情况下使用它们要快得多(希望谨慎)。
我不太确定你的问题是什么,但我至少建议更改静态类以公开属性而不是字段。
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 期间检查空值。
您在这里至少有两个选择:
IList<Particles>
在每个对粒子进行操作的类中创建一个属性。
在每个对粒子进行操作的类中,创建一个私有IList<Particles>
字段和一个将此类列表作为参数的构造函数。
这些选项中的任何一个都将保留列表的封装。