Доступ к унаследованным свойствам через статический класс - PullRequest
0 голосов
/ 13 ноября 2010

В настоящее время я обращаюсь к свойству, создав статический метод, подобный приведенному ниже.

public static class CartCollection : List<Cart>
{
    public static void Add(Cart Cart)
    {
        Add(Cart);
    }
}

Все, чего я пытаюсь добиться, - это иметь доступ ко всем свойствам List <>.

Вне класса я бы хотел сделать следующее:

Cart cart = new Cart();
cart.SomeProperty = 0;
CartCollection.Add(cart);

Спасибо!

Ответы [ 3 ]

1 голос
/ 13 ноября 2010

Две вещи:

1) Не наследуй List<T>. Реализация IList<T>.

2) Используйте синглтон:

public class CartCollection : IList<Cart>
{
    public static readonly CartCollection Instance = new CartCollection();

    private CartCollection() { }

    // Implement IList<T> here
}

Кроме того, поскольку вы используете это в приложении ASP.NET, вы должны знать, что статические члены совместно используются всеми запросами. Использование такого кода без правильного ввода lock может привести к сбоям. И даже если вы используете lock, вы будете делиться данными между вашими пользователями, которые вы, возможно, не хотите ...

0 голосов
/ 13 ноября 2010

Почему список подклассов вообще? Если вы не добавляете дополнительную функциональность, почему бы просто не использовать List<Cart>?

public static class CartCollection
{
    public static readonly List<Cart> Instance = new List<Cart>();
}

Cart cart = new Cart();
cart.SomeProperty = 0;
CartCollection.Instance.Add(cart);
0 голосов
/ 13 ноября 2010

Не наследуйте от List<>, вставьте один:

public static class CartCollection
{
    private static List<Cart> _list = new List<Cart>();

    public static void Add(Cart Cart)
    {
        _list.Add(Cart);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...