C #: конвертировать суперкласс в подкласс - PullRequest
0 голосов
/ 16 июня 2019

У меня есть класс (SuperClass), который используется. Для собственных целей я разработал подкласс, который добавляет дополнительную информацию для меня.

class SuperClass{
}

class SubClass: SuperClass{
}

Теперь моя проблема в том, что во время выполнения я хочу преобразовать экземпляр Superclass в экземпляр SubClass. Сделайте некоторые операции на нем, а затем вернитесь в SuperClass. Поэтому мой вопрос заключается в том, как можно на самом деле преобразовать экземпляр SueprClass в экземпляр SubClass?

SubClass newItem = superClass as SubClass;

1 Ответ

1 голос
/ 16 июня 2019

Если экземпляр, с которым вы работаете, был инициализирован как SuperClass, вы не можете волшебным образом преобразовать его в экземпляр SubClass - который выбросил бы всю систему типов из окна.

Однако вы можете добавить способ преобразования SuperClass в SubClass, но вам придется написать код для этого.

Один из способов - добавить конструктор к SubClass, который принимаетэкземпляр SuperClass и любую дополнительную информацию, которая нужна SubClass (если ему не нужна дополнительная информация, возможно, вам лучше использовать методы расширения вместо наследования).
Другим способом было бы написать явное оператор преобразования.

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