Re[3]: Сравнение System.Type
От: Sinix  
Дата: 09.09.16 13:19
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Там еще одна особенность


Огромная просьба: пишете код для других — используйте нормальные соглашения по именованию. А то хираганой отвечать буду ;P

S> Есть типы которые содержат ограничения и для них

S>TI.GetGenericParameterConstraints() будет возвращать истину
S>а
S>IsConstructedGenericType ложь

Ну так by design. .GetGenericParameterConstraints() работает только для generic arguments.

Т.е. для
    class Typed<T> where T: struct,IEquatable<T> { }


* typeof(Typed<>) - unboung generic type
* typeof(Typed<>).GetGenericArguments()[0] - generic type arg (тот самый T)
* typeof(Typed<>).GetGenericArguments()[0].GetGenericParameterConstraints() - ограничения generic type arg


по-хорошему для каждого из трёх надо бы заводить свой тип, чтоб не путаться, но тут уже поздно метаться.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.