我有这节课:
class Test<K,V> {}
class Test1 : Test<int, string> {}
是否可以从行为Test1
的{{1}}实例获取信息?
答案 0 :(得分:3)
似乎,您想要基本类型的通用参数 :
using System.Reflection;
...
Type[] generics = typeof(Test1)
.BaseType // Test<K, V>
.GetGenericArguments(); // {K, V}
Console.Write(string.Join(", ", generics.Select(t => t.Name)));
结果:
Int32, String
如果您有实例,请使用.GetType()
:
Test1 myTest = ...
Type[] generics = myTest
.GetType() // Test1
.BaseType // Test<K, V>
.GetGenericArguments(); // {K, V}