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

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

Patricia Arquette
發布: 2025-01-13 06:26:42
原創
927 人瀏覽過

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中文網其他相關文章!

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