使用變數作為型別參數實例化C#泛型型別
在C#中,經常需要根據動態決定的類型參數建立泛型類型的實例。然而,直接在new
關鍵字中提供類型參數值是不可能的,會導致以下錯誤:
<code>'List<k>' is a 'Type' but is used like a 'Type'</k></code>
解決方法
為了克服這個限制,可以使用反射來明確地建構泛型類型:
取得泛型類別的類型(例如,List<T>
):
<code class="language-C#">Type genericListType = typeof(List<>);</code>
使用所需的型別替換<T>
來取得具體的泛型類型:
<code class="language-C#">Type specificListType = genericListType.MakeGenericType(typeof(double));</code>
使用反射建立特定泛型類型的實例:
<code class="language-C#">var list = Activator.CreateInstance(specificListType);</code>
透過這種方法,您可以建立使用變數驅動的類型參數的泛型類型的實例。
以上是如何使用變數作為型別參數來實例化 C# 中的泛型型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!