4
泛型類型參數請看下面的泛型類如何體現在C#.NET
Dictionary<TKey, TValue>
List<T>
CustomHashMap<K, V>
是否可以反射回給泛型類型參數的名字呢?
對於實施例
"TKey", "TValue"
"T"
"K", "V"
泛型類型參數請看下面的泛型類如何體現在C#.NET
Dictionary<TKey, TValue>
List<T>
CustomHashMap<K, V>
是否可以反射回給泛型類型參數的名字呢?
對於實施例
"TKey", "TValue"
"T"
"K", "V"
這似乎達到目的:
class Program
{
static IEnumerable<string> GetGenericArgumentNames(Type type)
{
if (!type.IsGenericTypeDefinition)
{
type = type.GetGenericTypeDefinition();
}
foreach (var typeArg in type.GetGenericArguments())
{
yield return typeArg.Name;
}
}
static void Main(string[] args)
{
// For a raw type
Trace.WriteLine(string.Join(" ", GetGenericArgumentNames(typeof(Foo<>))));
Trace.WriteLine(string.Join(" ", GetGenericArgumentNames(typeof(Foo<Quux>))));
}
}
class Foo<TBar> {}
class Quux {}
投票++; // 奇蹟般有效! :-) – series0ne
@activwerx更改了代碼以提供一個很好的實用程序函數,該函數將用於泛型類型定義和實例化。 – millimoose