Общие переменные среди подклассов - PullRequest
1 голос
/ 18 января 2011

У меня проблема с унаследованными классами. Взгляните на следующий VB.NET 2.0 / VS 2005 код:

MustInherit Class templateclass
    Public Shared x As String
End Class

Class child1
    Inherits templateclass
End Class

Class child2
    Inherits templateclass
End Class

Шаблонный класс имеет общую переменную x, которая, конечно, наследуется дочерними классами. Но мне интересно, что все дочерние классы имеют только один х! До сих пор я думал, что общие переменные являются общими только для экземпляров класса, а не для всех потомков. Это очень раздражает, потому что у меня есть базовый класс, который мне нужен в двух слегка отличающихся версиях, и они не должны «поделиться общими» переменными. А поскольку у классов много общих переменных, отслеживание каждой дочерней переменной было бы очень ... не элегантным и потребовало бы много работы. У кого-нибудь есть лучшее решение для этой проблемы?

Заранее спасибо,

Сага

1 Ответ

0 голосов
/ 18 января 2011

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

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