Как бросить ребенка на базу так, чтобы он перестал признаваться ребенком - PullRequest
0 голосов
/ 01 апреля 2020

Предположим,

class A {
    public A() {}
}
class B : A {
    public B() {}
}

Теперь я хочу привести от B к A, чтобы приведенный объект был больше не B.

B b = new B();
A a = (A) b; // some kind of casting
bool res = a is B; // I want it to be false

1 Ответ

1 голос
/ 01 апреля 2020

Вы не можете опускаться. Однако у вас есть несколько вариантов архивирования чего-то подобного.

1) Создайте конструктор для A, который принимает B в качестве параметра, и создайте новый A, используя любые свойства, которые вам нужны из B. (РЕДАКТИРОВАТЬ: Как сказал Кевин Крумвиде, это плохая идея, и это не должно быть сделано)

2) Используйте autopper, чтобы отобразить B на A.

B b = new B();
AutoMapper.Mapper.CreateMap<B, A>();     
A a = AutoMapper.Mapper.Map<A>(b);

Это первые на моей голове, есть возможно больше вариантов.

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