C# 定义的非泛型声明上不允许约束类泛型仍然出错?

C# 定义的非泛型声明上不允许约束类泛型仍然出错?,c#,.net,generics,c#-4.0,C#,.net,Generics,C# 4.0,我有MYDemoClass.cs [Serializable] public class MYDemoClass<T> where T : class { 在MyTaskClass.cs中 public MYDemoClass<object> Update(int Id, MYDemoClass<T> data) where T : class { publicMyDemoClass更新(int-Id,MYDemoCla

我有MYDemoClass.cs

 [Serializable]
    public class MYDemoClass<T> where T : class
    {
MyTaskClass.cs中

 public MYDemoClass<object> Update(int Id, MYDemoClass<T> data) where T : class
        {
publicMyDemoClass更新(int-Id,MYDemoClass数据),其中T:class
{
这给了我构建错误
约束在非泛型上是不允许的
声明
为什么会这样?如果我已经声明了MYDemoClass在哪里 T:类


您可能希望这样声明:

MYDemoClass<object> Update<T>(int Id, MYDemoClass<T> data) where T : class;
MYDemoClass更新(int-Id,MYDemoClass数据),其中T:class;

您可能希望这样声明:

MYDemoClass<object> Update<T>(int Id, MYDemoClass<T> data) where T : class;
MYDemoClass更新(int-Id,MYDemoClass数据),其中T:class;

您的方法不是泛型-
t
不作为类型参数存在,因为您没有将其作为类型参数引入…
类MYDemoClass,其中t:class
是泛型类。它与泛型方法无关。您也必须创建泛型方法。您不能将
MYDemoClass
包含在非泛型中。在非泛型方法您可以执行
MYDemoClass
或使用某些已知类型。您的方法不是泛型-
t
不作为类型参数存在,因为您没有将其作为类型参数引入…
class MYDemoClass,其中t:class
是泛型类。它与泛型方法无关。您必须创建泛型方法方法也是。你不能在非泛型中使用
MYDemoClass
。在非泛型方法中,你可以使用
MYDemoClass
或使用一些已知类型。谢谢,但是为什么需要
Update
你能详细说明或给我链接吗?谢谢泛型需要一个类型参数。“T”在本例中。这是泛型的声明方式。谢谢,但为什么需要
Update
您能详细说明一下或给我链接吗?谢谢泛型需要一个类型参数。在本例中为“T”。这是泛型的声明方式。