Я хотел бы иметь несколько классов, которые расширяют один базовый абстрактный класс.
Затем я хотел бы иметь объекты, каждый из которых хранит подмножество этих классов и вызывает метод, который они реализуют.
Поэтому я подумал - я ничего не делаю с объектами, которые храню, так что давайте просто сделаем эти классы статическими, и я не буду тратить память на хранение объекта, только ссылки на статические классы, чтобы я мог вызывать статическую функцию. Вопрос - как мне это сделать?
Для тех, кто предпочитает код, вот что мне нужно:
public static abstract class A {
public static abstract void F();
}
public static class B : A {
public static override void F() {
...
}
}
// Class Storage of course does NOT work, its just here to illustrate what I need
public class Storage {
private List<A> list;
public void AddElement(A element) {
list.Add(element);
}
public void DoStuff() {
foreach(A element in list)
element::F();
}
}
Есть ли способ сделать что-то подобное? Или другое решение такой проблемы?
void DoStuff()
естьvoid DoStuff(List<A> list)
- person Shaz   schedule 31.07.2013static
, вы можете изучить использование шаблона singleton или изучитьLazy<T>
- person Khan   schedule 31.07.2013