Приведение 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) {}