我想知道是否可以改进这段代码。 IProvider 实现 IProvider 并覆盖 Request(...)。我想将它们组合成一个界面。但我仍然需要一个类型化和非类型化的界面来使用。
有没有一种方法可以将它们结合起来,或者这就是界面的外观?
public interface IProvider
{
DataSourceDescriptor DataSource { get; set; }
IConfiguration Configuration { get; set; }
IResult Request(IQuery request);
}
public interface IProvider<T> : IProvider
{
new IResult<T> Request(IQuery request);
}
最佳答案
如果泛型类型参数 T
仅在 Request
方法的上下文中相关,则仅将该方法声明为泛型:
public interface IProvider
{
DataSourceDescriptor DataSource { get; set; }
IConfiguration Configuration { get; set; }
IResult Request(IQuery request);
IResult<T> Request<T>(IQuery request);
}
关于c# - 是否可以定义一个可以具有泛型方法的非泛型接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247245/