Вопрос касается .Net конкретно.
Предположим, что базовый класс A имеет 2 производных класса B и C. Кроме того, предположим, что базовый класс A имеет статическую переменную с именем 's'.Являются ли значения этой статической переменной общими для 'B' и 'C', или каждый получает свою собственную копию статической переменной.
Насколько мне известно, обычно статическая переменная является общей для производных классов, если толькоБазовый класс - Общий.Если базовый класс является универсальным, то для каждой уникальной комбинации параметров его типа создается уникальная копия класса, и каждая такая копия класса вместе с производными классами этой конкретной копии совместно использует одну и ту же сататическую переменную из базового класса.
Я на самом деле сталкиваюсь с совершенно уникальной ситуацией.В моем случае все A, B и C не являются общими.А А имеет статический член.Но значение для этого члена различно для B и C, что, по моему мнению, не должно было иметь место (если мое приведенное выше утверждение для статических переменных неверно).
EDIT:
Ну, мое приложение является приложением ASP.NET.Я продолжаю отлаживать это, но согласно моей текущей оценке, это происходит следующим образом:
- Я ставлю точку останова, где переменная изменяется, и ее значение обновляется при первом обращении к точке останова.
- При следующем достижении точки останова переменная возвращается к своему старому значению и снова инициализируется.Это закрытая переменная, которая изменяется только в одном месте.
Я думаю, что, возможно, домен приложения был перезаписан или каким-то другим образом класс выгружен из памяти.Я все еще занимаюсь расследованием, но спасибо всем за ответы.