首頁 >後端開發 >C++ >如何使用保存類型的變數建立泛型類型實例?

如何使用保存類型的變數建立泛型類型實例?

Patricia Arquette
Patricia Arquette原創
2025-01-13 06:26:42932瀏覽

How Can I Create a Generic Type Instance Using a Variable Holding the Type?

使用包含類型的變數建立泛型<T> 類型實例

在動態產生類型資訊等場景中,使用包含類型的變數建立泛型類型的實例是一種很有用的技術。雖然問題中給出的程式碼嘗試建立 List<k> 實例(其中 k 是 Type 類型的變數),可能無法編譯,但有其他方法可以實現此功能。

一個可能的解決方案是使用泛型類型定義上的 MakeGenericType 方法。此方法接受一組類型參數,並傳回一個新類型,該類型是使用這些參數實例化的泛型類型的版本。在這種情況下,程式碼如下所示:

<code class="language-csharp">var genericListType = typeof(List<>);
var specificListType = genericListType.MakeGenericType(typeof(double));</code>

genericListType 變數包含泛型 List<T> 類型的定義,MakeGenericType 方法傳回專門的 List<double> 類型。

建立特定的泛型類型後,可以使用 Activator 類別建立實例。 CreateInstance 方法可以用來根據類型資訊建立一個新類型的實例。

<code class="language-csharp">var list = Activator.CreateInstance(specificListType);</code>

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

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