如何使用泛型类型调用此通用方法?

时间:2011-06-10 15:04:54

标签: c# generics

我现在有这个代码:

Method1<Class1<Class2>>();

public void Method1<T>()
{
    // process
}

Class1本身需要通用类型(Class2)。

我必须拨打Method1大约10次,因为所有Class2都属于同一类型。

那么如何用以下内容调用Method1

Method1<Class1<J>>();

其中J本身就是Class1的通用类型。

3 个答案:

答案 0 :(得分:1)

这同样适用于此:

IList<IEnumerable<string>>

答案 1 :(得分:0)

您可以使用类文件中的using指令为您的一个或两个类添加别名。

using J = Class2;
using MyClass = Class1<Class2>;

(根据需要在类名称中应用适当的名称空间,如Foo.Bar.Class1等)

现在,您可以使用以下任何语句调用您的方法

Method1<Class1<Class2>>();
Method1<Class1<J>>();
Method1<MyClass>();

答案 2 :(得分:0)

甚至更清晰的代码使用using:创建一个真正的子类:

class SpecializedClass1:Class1<Class2>
{
    /* empty or do whatever makes sense in this specialized variant */
}