2014-07-14 119 views
0

可以创建具有多个不知道类型的类吗? 例如: 考虑我有:具有多种类型的通用类

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

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


} 

,我的问题是,如果这是可能通过一些怎样的类型列表中,然后在循环使用它们?然后想知道如何调用它。

+1

Pass * what *类型列表?目前你的问题还不清楚。如果你能展示你期望如何调用该方法,以及你期望得到的结果如何,这将会有所帮助。 –

+0

如果你有几个不同类型的类,实现相同的接口,你能够实现你想要做的事情吗? – Mez

+0

对于.Net 4或更新的版本,您还可以对“未知”类型使用'dynamic'关键字。这会在你的上下文中使用吗(而不是泛型)? –

回答

1

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

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

然而,泛型类型是明确指定的,AFAIK没有办法指定类的泛型类型列表。

-1

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