Приведение object к пользовательскому типу данных - C#
Формулировка задачи:
Добрый день!
Как-то не помог мне поиск в решении следующей задачи. Подскажите пожалуйста.
Есть две структуры,
По создании и заполнении экземпляров этих структур, я пихаю это все в 'TreeNode'.Tag
В последствии, по выделению мышью узла в дереве, мне нужно эти данные выцепить.
Т.к. я заранее не знаю, какой тип данных там лежит, я делаю следующее:
Что крайне плохо, т.к. язык не дает использовать далее эти объекты, ссылаясь на то, что они могут быть и не заполнены.
Пришла идея делать object:
Но в таком случае не удается добраться до свойств объекта, ибо непонятно, на каком этапе какие из свойств доступны. Можно, конечно, попробовать сделать так:
и т.д., но это неудобно, и не факт что работает (я не проверял).
Внимание, вопрос!
Как можно (можно?) объект info привести к определенному типу, в зависимости от условия? Есть ли такой метод?
Заранее спасибо.
struct NodeInfo{/*набор данных*/};
struct QueryInfo {/*набор данных*/};
NodeInfo nInfo; QueryInfo qInfo; if (clickedNode.Tag.GetType().Name == "NodeInfo") nIinfo = (NodeInfo)clickedNode.Tag; else qInfo = (QueryInfo)clickedNode.Tag;
object info; if (clickedNode.Tag.GetType().Name == "NodeInfo") info = (NodeInfo)clickedNode.Tag; else info = (QueryInfo)clickedNode.Tag;
((NodeInfo)info).prop;
Решение задачи: «Приведение object к пользовательскому типу данных»
textual
Листинг программы
public static explicit operator NodeInfo(QueryInfo value) {}
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д