首页 > 后端开发 > C++ > 如何使用变量作为类型参数来实例化 C# 中的泛型类型?

如何使用变量作为类型参数来实例化 C# 中的泛型类型?

Barbara Streisand
发布: 2025-01-13 06:03:43
原创
123 人浏览过

How Can I Instantiate a Generic Type in C# with a Variable as the Type Parameter?

使用变量作为类型参数实例化C#泛型类型

在C#中,经常需要根据动态确定的类型参数创建泛型类型的实例。然而,直接在new关键字中提供类型参数值是不可能的,会导致以下错误:

<code>'List<k>' is a 'Type' but is used like a 'Type'</k></code>
登录后复制

解决方法

为了克服这个限制,可以使用反射来显式构造泛型类型:

  1. 获取泛型类的类型(例如,List<T>):

    <code class="language-C#">Type genericListType = typeof(List<>);</code>
    登录后复制
  2. 使用所需的类型替换<T>来获取具体的泛型类型:

    <code class="language-C#">Type specificListType = genericListType.MakeGenericType(typeof(double));</code>
    登录后复制
  3. 使用反射创建特定泛型类型的实例:

    <code class="language-C#">var list = Activator.CreateInstance(specificListType);</code>
    登录后复制

通过这种方法,您可以创建使用变量驱动的类型参数的泛型类型的实例。

以上是如何使用变量作为类型参数来实例化 C# 中的泛型类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板