首頁 > 後端開發 > C++ > 如何使用變數作為型別參數來實例化 C# 中的泛型型別?

如何使用變數作為型別參數來實例化 C# 中的泛型型別?

Barbara Streisand
發布: 2025-01-13 06:03:43
原創
119 人瀏覽過

How Can I Instantiate a Generic Type in C# with a Variable as the Type Parameter?

使用變數作為型別參數實例化C#泛型型別

在C#中,經常需要根據動態決定的類型參數建立泛型類型的實例。然而,直接在new關鍵字中提供類型參數值是不可能的,會導致以下錯誤:

<code>'List<k>' is a 'Type' but is used like a 'Type'</k></code>
登入後複製

解決方法

為了克服這個限制,可以使用反射來明確地建構泛型類型:

  1. 取得泛型類別的類型(例如,List<T>):

    <code class="language-C#">Type genericListType = typeof(List<>);</code>
    登入後複製
  2. 使用所需的型別替換<T>來取得具體的泛型類型:

    <code class="language-C#">Type specificListType = genericListType.MakeGenericType(typeof(double));</code>
    登入後複製
  3. 使用反射建立特定泛型類型的實例:

    <code class="language-C#">var list = Activator.CreateInstance(specificListType);</code>
    登入後複製

透過這種方法,您可以建立使用變數驅動的類型參數的泛型類型的實例。

以上是如何使用變數作為型別參數來實例化 C# 中的泛型型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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