使用反射來建立具有動態型別規格的 C# 泛型物件
在 C# 中,您可能需要動態建立泛型對象,例如 Task
要動態建立泛型 TaskA 或 TaskB 對象,請依照下列步驟操作:
例如:
<code class="language-csharp">Type d1 = Type.GetType("namespace.TaskA`1"); Type[] typeArgs = { typeof(Item) }; var makeme = d1.MakeGenericType(typeArgs); object o = Activator.CreateInstance(makeme);</code>
如果泛型類別接受多個型別參數,請確保在省略型別名稱時包含逗號,例如:
<code class="language-csharp">Type type = typeof(IReadOnlyDictionary<,>); </code>
注意: 程式碼範例中假設 "namespace.TaskA1" 和
Item是已定义的类型。 实际应用中,需要根据您的具体项目替换这些占位符。 此外,错误处理(例如,处理
Type.GetType()` 傳回 null 的情況)在生產環境中至關重要。
以上是如何使用反射建立具有動態類型規格的通用 C# 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!