0

鉴于:

public T Get<T>() { ... }

在哪里T关闭IEnumerable<XYZ>,我如何确定XYZ类型?

我没有变量可以开始。

4

2 回答 2

2

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

于 2012-05-13T08:32:43.660 回答
2

您可以使用LINQ 中的 TypeSystem.GetElementType 方法:Building an IQueryable Provider - Part I to get typeof(XYZ)when given typeof(IEnumerable<XYZ>)

var elementType = TypeSystem.GetElementType(typeof(IEnumerable<XYZ>));
// elementType == typeof(XYZ)

在您的方法中,您可以使用typeof(T)获取表示T.

public T Get<T>()
{
    var elementType = TypeSystem.GetElementType(typeof(T));
    ...
}
于 2012-05-13T08:39:35.777 回答