timofeygusevopal
@timofeygusevopal
asp.net core developer

Как привести экземляр класса из List к своему первональному виду игнорируя других потомков базового класса цепочки?

https://ideone.com/DI8nN7 Пробовал делать проверку через is и все так же. Я могу создавать каждый лист для каждого класса, но это не есть правильно. Я не знаю возможно ли это и как. Логика такая если обьект который приходит на конвертацию к родительскому классу и имеет дополнительное какое либо значение определенное при создании обьекта, он не будет конвертироваться к этому классу, а только к классу которым он был при создании обьекта
  • Вопрос задан
  • 68 просмотров
Решения вопроса 2
freeExec
@freeExec
Участник OpenStreetMap
typeof() или .GetType() на худой конец, чтобы не гадать.
Ответ написан
Вообще похоже на кейс, где можно применить полиморфизм.
Добавьте какой-нибудь виртуальный метод в базовый класс и переопределяйте его в наследниках.
Например можно использовать ToString.
С другой стороны мне кажется, что тут вы зря применили наследование. Можно использовать интерфейсы для добавления SSN и прочего к классам. Тогда через StringBuilder можно будет собрать итоговую строку просто применяя такой код:
var sb = new StringBuilder();
if (person as IWithX withX) 
  sb.AppendLine(person.X);
if(person as IWithY withY)
  sb.AppendLine(person.Y);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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