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

如何使用類型變數在 C# 中動態建立泛型實例?

Susan Sarandon
Susan Sarandon原創
2025-01-13 07:09:42356瀏覽

How Can I Dynamically Create Generic Instances in C# Using Type Variables?

使用類型變數動態建立泛型實例

在 C# 中,泛型類型提供了一種方便的方式來定義和使用可以與各種資料類型一起工作的資料結構。但是,在某些情況下,您可能需要使用包含類型的變數來建立泛型類型的實例。

下面的程式碼嘗試使用包含 double 類型類型的變數 k 建立一個 List 實例。但是,它無法編譯:

<code class="language-c#">Type k = typeof(double);
List<k> lst = new List<k>();</code>

為了解決這個問題,您可以使用以下方法:

  1. 建立一個 Type 類型的變數來儲存泛型清單類型。
  2. 使用泛型清單類型的 MakeGenericType 方法建立一個特定類型(在本例中為 List)。
  3. 最後,使用 Activator.CreateInstance 建立特定清單類型的實例。

以下是修正後的程式碼:

<code class="language-c#">var genericListType = typeof(List<>); // 注意<>
var specificListType = genericListType.MakeGenericType(typeof(double));
var list = Activator.CreateInstance(specificListType);</code>

透過此方法,您可以使用包含 Type 的變數動態建立泛型類型的實例。這種靈活性可讓您處理複雜的資料結構和泛型類型需要透過程式設計方式確定的場景。 注意typeof(List<>) 中的<>,它表示這是一個泛型類型,而不是具體的類型。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn