@leremin
atypical programmer

Как обратиться к типу базового класса?

class A {}
class B:A {}
var a = new A();
var b = new B();
			
Console.WriteLine(a.GetType());
Console.WriteLine(b.GetType());
Console.WriteLine((b as A).GetType());


Требуется, чтобы последний вывод вывел "A". Пример очень сильно сокращен, но вопрос именно в этом: у меня есть объект b и тип A, и нужно провернуть такой финт. То есть, чтобы b определился, как A. Не знаю, как по-другому описать.

Там на самом деле b передается в чужой Dictionary, идеологию которого менять не могу. Причем с типами я не работаю, а передаю в методы объекты; словарь - внутри чужого кода. То есть я передаю b, но хочу, чтобы этот чужой словарь думал, что это объект базового типа A. Мне в голову пришло только убрать наследование, тогда не придется "подменять" тип, но хотелось бы именно "подменить".
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
b.GetType().BaseType
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы