Дано:Как получить T из IEnumerable <T> параметр типа без переменной?
public T Get<T>() { ... }
где T
закрыта для IEnumerable<XYZ>
, как я могу определить тип XYZ
?
У меня нет переменной для начала.
Дано:Как получить T из IEnumerable <T> параметр типа без переменной?
public T Get<T>() { ... }
где T
закрыта для IEnumerable<XYZ>
, как я могу определить тип XYZ
?
У меня нет переменной для начала.
Вы можете использовать метод TypeSystem.GetElementType от LINQ: Building an IQueryable Provider - Part I получить typeof(XYZ)
когда данный typeof(IEnumerable<XYZ>)
:
var elementType = TypeSystem.GetElementType(typeof(IEnumerable<XYZ>));
// elementType == typeof(XYZ)
В вашем методе, вы можете использовать typeof(T)
, чтобы получить Type объект, представляющий T
.
public T Get<T>()
{
var elementType = TypeSystem.GetElementType(typeof(T));
...
}
Вы можете использовать typeof(T)
, что даст вам нужную информацию о типе.
Вы имеете в виду: 'TReturn = Get()' TReturn ВСЕГДА '' IEnumberable и вам нужно найти тип 'XYZ'? –
gideon
Вы имеете в виду: 'class Foo: IEnumerable {public T Получить () {...} где T: IEnumerable '? –
flq