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