如何获取不带变量的 IEnumerable 类型参数的 T
本文关键字:类型参数 IEnumerable 变量 何获取 获取 | 更新日期: 2023-09-27 18:34:11
给定:
public T Get<T>() { ... }
如果T
对IEnumerable<XYZ>
关闭,如何确定XYZ
类型?
我没有变量可以开始。
您可以使用 LINQ:构建 IQueryable 提供程序 - 第 I 部分 中的 TypeSystem.GetElementType 方法,以便在给定typeof(IEnumerable<XYZ>)
时获取typeof(XYZ)
:
var elementType = TypeSystem.GetElementType(typeof(IEnumerable<XYZ>));
// elementType == typeof(XYZ)
在您的方法中,可以使用 typeof(T)
获取表示 T
的 Type 对象。
public T Get<T>()
{
var elementType = TypeSystem.GetElementType(typeof(T));
...
}
您可以使用 typeof(T)
,这将为您提供正确的类型信息。