首頁 > 後端開發 > C++ > 如何使用C#中的動態類型參數調用通用方法?

如何使用C#中的動態類型參數調用通用方法?

Mary-Kate Olsen
發布: 2025-02-03 07:55:09
原創
632 人瀏覽過

How to Call Generic Methods with Dynamic Type Parameters in C#?

在運行時確定類型參數的情況下調用泛型方法

許多應用程序處理在運行時之前未知的類型。在這種情況下,使用動態獲取的類型參數調用泛型方法變得至關重要。本文探討實現此任務的最佳實踐。

假設以下場景:在 Example() 方法中,我們需要使用存儲在 myType 變量中的 Type 調用泛型方法 GenericMethod<T>()。直接調用 GenericMethod<myType>() 的方法不可行。

為了使用動態類型參數調用泛型方法,我們使用反射。首先,我們使用 GetMethod() 獲取方法元數據。然後,我們通過提供適當的類型參數,使用 MakeGenericMethod() 構造泛型方法。最後,我們使用 Invoke() 調用泛型方法。

<code class="language-csharp">MethodInfo method = typeof(Sample).GetMethod(nameof(Sample.GenericMethod));
MethodInfo generic = method.MakeGenericMethod(myType);
generic.Invoke(this, null);</code>
登入後複製

如果泛型方法是靜態的,我們將 null 作為第一個參數傳遞給 Invoke。此步驟與泛型方法無關,是通用的反射實踐。

C# 4 引入了“dynamic”類型推斷,簡化了特定場景中的此過程。但是,當類型推斷不可用時,了解反射仍然很有用。

以上是如何使用C#中的動態類型參數調用通用方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板