C# - 获取泛型类的泛型方法

时间:2014-03-12 13:51:50

标签: c# generics

我有一个通用类 - Class1<T>, 和普通班级 - Class2

我想在Class2中创建一个将Class1作为参数的泛型方法。 我试着这样做:

void DoSomething<T>(Class1<T> data) {
 ...
}

但是我收到了一个错误:

  

错误25:类型&#39; T&#39;必须是参考类型才能将其用作参数&#39; T&#39;通用类型或方法&#39; Class1<T>&#39;。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

听起来你对where T : class有一个Class<T>限制,所以你只需要修改方法签名来匹配:

void DoSomething<T>(Class1<T> data) where T : class

答案 1 :(得分:0)

我认为您需要定义Class1<T>,如下所示:

public class Class1<T> where T : class // here `T` is regarded as a reference type
{

}