c# - 在 C# 类中实例化泛型类型

标签 c# generics instantiation

<分区>

非常基本的 C# 问题,

class Data<T>
 {
    T obj;

    public Data()
    {
      // Allocate to obj from T here
      // Some Activator.CreateInstance() method ?
      obj =  ???
    }
 }

我该怎么做?

最佳答案

如果你想创建你自己的 T 实例,那么你需要定义一个约束 new()

class Data<T> where T: new()
 {
    T obj;

    public Data()
    {
      obj =  new T();
    }
 }

如果你想传入obj那么你需要在构造函数中允许它

 class Data<T>
     {
        T obj;

        public Data(T val)
        {
          obj = val;
        }
     }

关于c# - 在 C# 类中实例化泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2024340/

相关文章:

c# - 如果属性在构造函数中初始化,则似乎未设置 XAML 绑定(bind)

c# - 如何将字符转换为键码?

c# - 如何使用 libgit2sharp (git cat-file) 获取文件的头版本

c++ - 功能与安全/静态与动态实例化

javascript - 无法在 JavaScript 中实例化 TypeScript 类

java - 如何在android中实例化一个类,它也是一个 Activity ?

c# - 如何用 "9HM.A2"声明锯齿状数组

c# - 使用泛型类 C# 键入奇怪的命名空间

java - 泛型 List<String> 和 List<Integer> 未按预期运行

c# - TResponse 必须是具有无参数构造函数的非抽象类型才能将其用作参数 TResponse