использование статических классов для глобальных объектов в C # - PullRequest
0 голосов
/ 01 августа 2010

Я использую список для частиц.

List<Particle> particles;

Обычно я помещаю этот список в мой класс моделирования.Который вычисляет положение, скорость и другие свойства частиц.

Некоторым другим классам эти данные частиц нужны для вывода и последующей обработки.

нормально ли создавать статический класс

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

для доступа к данным частиц из других классов?

Ответы [ 2 ]

2 голосов
/ 01 августа 2010

Я бы рекомендовал держаться подальше от статических классов / методов, когда это возможно.Они имеют тенденцию приводить к высокой связи кода.Хотя в некоторых случаях их можно использовать гораздо быстрее (надеюсь, экономно).

Я не совсем уверен, что вы собираетесь из своего вопроса, но я бы по крайней мере рекомендовал изменить статический класс, чтобы выставить свойство вместо поля.

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; }
    }
}

Таким образом, вы включаете список немного больше.Например, вы можете проверить наличие нулевых значений во время получения или установки.

0 голосов
/ 01 августа 2010

У вас есть как минимум две опции:

  1. Создайте свойство IList<Particles> в каждом классе, который работает с частицами.

  2. Inкаждый класс, который работает с частицами, создает частное поле IList<Particles> и конструктор, который принимает такой список в качестве параметра.

Любая из этих опций сохраняет инкапсуляцию списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...