首頁 > 後端開發 > C++ > 如何存取具有動態確定類型的 C# 泛型方法?

如何存取具有動態確定類型的 C# 泛型方法?

Mary-Kate Olsen
發布: 2025-01-17 20:42:16
原創
985 人瀏覽過

How Can I Access C# Generic Methods with Dynamically Determined Types?

動態呼叫 C# 泛型方法

C# 中的一個常見挑戰涉及呼叫泛型方法,其中類型參數直到運行時才知道。 編譯器無法在編譯時解析類型會導致錯誤。

雖然 C# 中首選編譯時類型安全,但反射為需要運行時類型確定的情況提供了解決方案:

<code class="language-csharp">MethodInfo method = GetType().GetMethod("DoesEntityExist")
                             .MakeGenericMethod(new Type[] { t });
method.Invoke(this, new object[] { entityGuid, transaction });</code>
登入後複製

這使用反射動態呼叫泛型方法DoesEntityExist,取代運行時類型t。 然而,反射會增加複雜性並對表現產生負面影響。

更有效率且類型安全的方法是重構程式碼。 不要依賴反射,而是考慮使呼叫方法本身通用:

這將類型決定轉移到更高的級別,避免了運行時反射的需要。

提供有關您的具體用例的更多詳細資訊將有助於提供更精確的指導。 在 C# 中,優先考慮編譯時類型安全性至關重要。如果需要反思,請重新評估您的設計,以便在開發過程的早期階段可能合併泛型。

以上是如何存取具有動態確定類型的 C# 泛型方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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