不允许在非泛型声明中定义类泛型的约束仍然得到错误吗?

Neo*_*Neo 0 .net c# generics c#-4.0

我有MYDemoClass.cs

 [Serializable]
    public class MYDemoClass<T> where T : class
    {
Run Code Online (Sandbox Code Playgroud)

现在在界面中,IMyTask我创建如下方法

 public interface IMyTask
    {
MYDemoClass<object> Update(int Id, MYDemoClass<T> data) where T : class;
}
Run Code Online (Sandbox Code Playgroud)

MyTaskClass.cs

 public MYDemoClass<object> Update(int Id, MYDemoClass<T> data) where T : class
        {
Run Code Online (Sandbox Code Playgroud)

这给我生成错误的Constraints are not allowed on non-generic declarations原因是什么?如果我已经申报了MYDemoClass<T> where T : class

sin*_*ash 5

您可能要这样声明:

MYDemoClass<object> Update<T>(int Id, MYDemoClass<T> data) where T : class;
Run Code Online (Sandbox Code Playgroud)

  • 泛型需要一个类型参数。在这种情况下为“ T”。这就是泛型的声明方式。 (2认同)