Как привести тип Object к тому который даёт GetType() по этому объекту - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, помогите разобраться. Есть функция которая должна возвращать ссылку на экземпляр одного из 5 классов, заранее неизвестно какого именно. В силу того, что мы не знаем какой именно тип экземпляра будет по ссылке, возвращаемое значение имеет тип Object. GetType() возвращает правильный тип по данной ссылке. Вопрос в следующем: как мне привести тип Object к тому который даёт GetType() по этому объекту, чтобы обращаться к свойствам и методам данного экземпляра?
Листинг программы
  1. getobject = new Dictionary<int, Func<TreeNode, Object>>
  2. {
  3. ...
  4. };
  5. object myobj = getobject[my_int](node);
Знаю, что можно через switch :
Листинг программы
  1. switch ((getobject[my_int](node)).GetType().ToString())
  2. {
  3. case "MyType":
  4. MyType var = getobject[my_int](node) as MyType;
  5. break;
  6. case "MyType2":
  7. ...
  8. }
Но это не красивое и трудно масштабируемое решение. Если типов будет много свитч будет огромный. Может кто-нибудь предложить что-то поэлегантнее? Заранее благодарен.

Решение задачи: «Как привести тип Object к тому который даёт GetType() по этому объекту»

textual
Листинг программы
  1. public intarface IDo
  2. {
  3.       public void Do1();
  4. }
  5. class MyType:IDo
  6. {
  7.        public void Do1()
  8.        {
  9.             //все действия этого класса на событие Do1
  10.        }
  11. }
  12. .....
  13. //метод который вызывается при событии Do1
  14. ...
  15. IDo do = (IDo) (getobject[my_int](node);
  16. do.Do1();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.733 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы