【问题标题】:Generic class with multiple types具有多种类型的泛型类
【发布时间】:2014-07-14 10:25:19
【问题描述】:

这是否可以创建具有多个不知道类型的类? 前任: 考虑我有:

class MyClass <Type1, Type2, Type3, TResponse >
{

public TResponse Run()
{
     //operation on Type1, Type2, Type3
}


}

我的问题是这是否可以传递一些类型列表然后在循环中使用它们?然后想知道如何调用它。

【问题讨论】:

  • 传递什么类型列表?你的问题目前很不清楚。如果您能说明您期望如何调用该方法以及您期望的结果是什么,那将会有所帮助。
  • 如果你有几个不同类型的类,实现相同的接口,你能实现你想要做的吗?
  • 对于 .Net 4 或更高版本,您还可以将 dynamic 关键字用于“未知”类型。这可以在您的上下文中使用(而不是泛型)吗?
  • 您要解决什么问题?也许有更好的方法。

标签: c# class generics generic-list


【解决方案1】:

是的,您可以定义具有多种类型的泛型类,以下代码可以编译。但是,为了对这些类型执行操作,您通常需要在类型上定义 constraints

public class MyClass <Type1, Type2, Type3, TResponse>
{
    public TResponse Run()
    {
        return default(TResponse);
    }
}

但是,泛型类型是明确指定的,AFAIK 无法指定您的类具有的泛型类型列表。

【讨论】:

    【解决方案2】:

    如果所有类都使用接口或抽象类公开相同的功能,这是可能的。一旦我们有了基本类型,我们就可以创建具有多个类型参数的泛型类。在泛型类中,我们可以调用任何公开的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-06
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      相关资源
      最近更新 更多