C# 如何获得IEnumerable的T<;T>;类型参数不带变量?

C# 如何获得IEnumerable的T<;T>;类型参数不带变量?,c#,generics,type-parameter,C#,Generics,Type Parameter,鉴于: public T Get(){…} 如果T关闭到IEnumerable,如何确定XYZ类型 我没有变量可以开始。你可以使用typeof(T),这将为你提供正确的类型信息。你可以使用typeof(T),这将为你提供正确的类型信息。你可以使用TypeSystem.GetElementType方法从获取typeof(XYZ)当给定typeof(IEnumerable): 当给定typeof(IEnumerable)时,可以使用中的TypeSystem.GetElementType方法获取ty

鉴于:

public T Get(){…}
如果
T
关闭到
IEnumerable
,如何确定
XYZ
类型


我没有变量可以开始。

你可以使用
typeof(T)
,这将为你提供正确的类型信息。

你可以使用
typeof(T)
,这将为你提供正确的类型信息。

你可以使用TypeSystem.GetElementType方法从获取
typeof(XYZ)
当给定
typeof(IEnumerable)
:


当给定
typeof(IEnumerable)
时,可以使用中的TypeSystem.GetElementType方法获取
typeof(XYZ)


你的意思是:
TReturn=Get()
TReturn总是
IEnumerable
,你需要找到
XYZ
的类型?你的意思是:
class Foo:IEnumerable{public T Get(){…}其中T:IEnumerable
?你的意思是:
TReturn=Get()
TReturn总是
IEnumerable
,您需要找到
XYZ
的类型吗?您的意思是:
类Foo:IEnumerable{public T Get(){…}其中T:IEnumerable
public T Get<T>() { ... }
var elementType = TypeSystem.GetElementType(typeof(IEnumerable<XYZ>));
// elementType == typeof(XYZ)
public T Get<T>()
{
    var elementType = TypeSystem.GetElementType(typeof(T));
    ...
}