0

我正在使用粒子列表。

List<Particle> particles;

通常我把这个列表放在我的模拟课上。它计算粒子的位置、速度和其他属性。

其他一些类需要此粒子数据用于输出和后处理。

是否可以创建一个静态类,

static class Particles
{
    static List<Particles> plist;
}

从其他类访问粒子数据?

4

2 回答 2

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 期间检查空值。

于 2010-07-31T23:13:53.893 回答
0

您在这里至少有两个选择:

  1. IList<Particles>在每个对粒子进行操作的类中创建一个属性。

  2. 在每个对粒子进行操作的类中,创建一个私有IList<Particles>字段和一个将此类列表作为参数的构造函数。

这些选项中的任何一个都将保留列表的封装。

于 2010-07-31T23:35:51.613 回答