【发布时间】:2021-11-01 15:28:10
【问题描述】:
我找不到它为什么不起作用。我想做一个简单的接口,其中包含一个实现 IError 接口的通用方法
public class ErrorHandler<T> : IErrorHandler<ErrorInfo>
{
public Task HandleAsync() where T : IError
{
//code
}
}
public interface IErrorHandler<T>
{
Task HandleAsync() where T : IError;
}
public interface IError
{
//code
}
public class ErrorInfo : IError
{
//code
}
编译错误显示“非泛型声明上不允许使用约束”
【问题讨论】:
-
(顺便说一句,声明类型参数但从不实际使用它是很奇怪的......)
-
不是那么明显:您的方法根本不是通用的,因此您无法提供 where 约束。但是,您的班级可能会受到约束,因为它是通用
标签: c# asp.net-core generics error-handling interface