您想要呼叫泛型方法直到運行時才知道的類型參數。例如,您有一個介面列表,並且您想要為每個介面呼叫一個泛型方法。
因為編譯時不知道類型參數有時,您不能將傳統方法呼叫與泛型一起使用。相反,您需要使用反射根據執行時間取得的類型參數動態呼叫泛型方法。
以下是實作此方法的方法:
// Original Method public void Method<T>() { // Method body } // Main Method var assembly = Assembly.GetExecutingAssembly(); var interfaces = assembly.GetTypes().Where(t => t.Namespace == "MyNamespace.Interfaces"); foreach (var interfaceType in interfaces) { MethodInfo genericMethod = typeof(Test).GetMethod("Method"); MethodInfo specificMethod = genericMethod.MakeGenericMethod(interfaceType); specificMethod.Invoke(null, null); // No arguments for this example }
透過利用反射,此方法可讓您在執行時間動態呼叫具有未知型別參數的泛型方法。
以上是如何使用運行時確定的類型參數呼叫泛型方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!