Размышляя о дискриминационном союзе - PullRequest
1 голос
/ 09 декабря 2011

Я получаю кучу объектов из сборки F #, которые затем размышляю, чтобы узнать их ценность.

(Если быть точным, у меня есть парсер, использующий fsYacc. Затем я пытаюсь отобразить результаты анализа в TreeView.)

Один из возможных возвращаемых объектов - это Дискриминационный союз:

type op = Eq | Gt | Ge | Lt | Le

Объект этого типа будет иметь значение, скажем, Ge.

Есть ли способ с помощью отражения, что я могу определить, что объект является Дискриминационным объединением, и, следовательно, предпринять шаги, чтобы определить его значение?

1 Ответ

5 голосов
/ 09 декабря 2011

Чтобы определить, является ли это дискриминированным союзом - http://msdn.microsoft.com/en-us/library/ee353623.aspx - FSharpType.IsUnion

Чтобы получить значение, используйте Reflection.UnionCaseInfo - http://msdn.microsoft.com/en-us/library/ee370473.aspx

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