可以创建具有多个不知道类型的类吗? 例如: 考虑我有:具有多种类型的通用类
class MyClass <Type1, Type2, Type3, TResponse >
{
public TResponse Run()
{
//operation on Type1, Type2, Type3
}
}
,我的问题是,如果这是可能通过一些怎样的类型列表中,然后在循环使用它们?然后想知道如何调用它。
可以创建具有多个不知道类型的类吗? 例如: 考虑我有:具有多种类型的通用类
class MyClass <Type1, Type2, Type3, TResponse >
{
public TResponse Run()
{
//operation on Type1, Type2, Type3
}
}
,我的问题是,如果这是可能通过一些怎样的类型列表中,然后在循环使用它们?然后想知道如何调用它。
是的,您可以定义一个泛型类与多种类型,下面的代码编译。但是为了执行这些类型的操作,您通常需要在类型上定义constraints。
public class MyClass <Type1, Type2, Type3, TResponse>
{
public TResponse Run()
{
return default(TResponse);
}
}
然而,泛型类型是明确指定的,AFAIK没有办法指定类的泛型类型列表。
如果所有类都使用接口或抽象类来公开相同的功能,则这是可能的。一旦我们有了基类型,我们可以创建具有多个类型参数的泛型类。在泛型类中,我们可以调用任何公开的功能。
Pass * what *类型列表?目前你的问题还不清楚。如果你能展示你期望如何调用该方法,以及你期望得到的结果如何,这将会有所帮助。 –
如果你有几个不同类型的类,实现相同的接口,你能够实现你想要做的事情吗? – Mez
对于.Net 4或更新的版本,您还可以对“未知”类型使用'dynamic'关键字。这会在你的上下文中使用吗(而不是泛型)? –