如何获取某种类型的T类型
本文关键字:类型 T1 种类 何获取 获取 | 更新日期: 2023-09-27 18:26:46
具有这样的泛型类型:
SomeType<T>
SomeType<T1, T2>
并且只有它们的类型:
Type type1 = typeof(SomeType<T>);
Type type2 = typeof(SomeType<T1, T2>);
如何从type1
获取T
类型 和T1
和T2
从type2
?
例:
使用 typeof(SomeType<int>)
只会返回SomeType´1
。
但我正在寻找一种方法来获取int
类型,就像typeof(int)
一样。
您应该Type
类上使用 GetGenericArguments 方法,该方法将返回用于指定开放泛型类型的特定类型。您的案例示例:
var type = typeof(SomeType<int, string>);
foreach(Type closedType in type.GetGenericArguments())
{
Console.WriteLine(closedType);
}
哪里
class SomeType<T1, T2> {}
将打印:
System.Int32
System.String
取决于SomeType
但我建议这样的事情:
Type innerType = type1.GetType().GetProperty("Item").PropertyType;