首頁 > 後端開發 > C++ > 如何使用類型變數在 C# 中實例化泛型類型?

如何使用類型變數在 C# 中實例化泛型類型?

Barbara Streisand
發布: 2025-01-13 07:29:11
原創
701 人瀏覽過

How Can I Instantiate Generic Types in C# Using Type Variables?

使用包含型別的變數建立泛型型別實例

在 C# 中,您可能覺得無法直接使用包含類型的變數來實例化泛型類型,這似乎違反直覺。以下程式碼說明了這個問題:

<code class="language-c#">Type k = typeof(double);
List<k> lst = new List<k>(); // 编译错误</code>
登入後複製

這段程式碼無法編譯,因為它試圖使用變數 k 來指定泛型類型。但是,可以使用一種變通方法來實現所需的功能。

要使用包含類型的變數建立泛型類型實例,您可以利用反射和 Activator.CreateInstance():

<code class="language-c#">var genericListType = typeof(List<>);
var specificListType = genericListType.MakeGenericType(typeof(double));
var list = Activator.CreateInstance(specificListType);</code>
登入後複製

這段程式碼的工作原理如下:

  1. genericListType 取得泛型 List<> 型態定義。
  2. MakeGenericType() 取得泛型型別定義並指定實際型別參數(在本例中為 double)。
  3. Activator.CreateInstance() 使用指定的型別參數實例化特定的泛型型別。

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

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