
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
05.10.2006, 12:50:00
|
|||
|---|---|---|---|
|
|||
наследование и статические переменные |
|||
|
#18+
есть базовый класс и два наследника от него. как объявить переменную, которая хранила бы свое значение для каждого класса и была общей для их экземпляров другими словами как бы в базовом классе объявить "статическую" переменную и заставить переопределить ее в каждом из наследников. то, что статические члены классов нельзя определять как virtual, abstract знаю, поэтому и переопределить ее не удасться, возможно только объявить в наследниках переменную с таким же именем, используя слова new/hide, но вот как это гарантировать, может быть есть какие-нибудь аттрибуты или еще что, а может быть есть вообще другой вариант решения этой проблемы. ниже приведу пример того, что хотелось бы чтобы было class Base { virtual protected static string name = "Base"; virtual public static string Name { get { return name; } } } class Derived1: Base { override protected static string name = "Derived1" override public static string Name { get { return name != null ? name : base.name; } } } class Derived2: Base { override protected static string name = null; override public static string Name { get { return name != null ? name : base.name; } } } Base.Name; // вернет "Base" Derived1.Name; // вернет "Derived1" Derived2.Name; // вернет "Base" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&mobile=1&tid=1388894]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
194ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
17ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 489ms |

| 0 / 0 |
