当我尝试实现以下代码时
public interface IJob
{
TimeSpan Interval { get; set; }
DateTimeOffset StartTime { get; set; }
int Priority { get; set; }
bool Repeat { get; set; }
bool Enabled { get; set; }
void Trigger();
}
public interface IJob<out T> : IJob
{
new T Trigger();
}
Run Code Online (Sandbox Code Playgroud)
像这样
public class EmployeeJob : IJob<bool>
{
bool IJob<bool>.Trigger()
{
throw new NotImplementedException();
}
public void Trigger()
{
throw new NotImplementedException();
}
}
Run Code Online (Sandbox Code Playgroud)
我要同时实现Trigger和Trigger<bool>方法,而我只需要Trigger<bool>在这种情况下,反之亦然非泛型类型.
您可以以不同方式拆分接口,以便非泛型接口不公开该void Trigger()方法:
public interface IJobBase
{
TimeSpan Interval { get; set; }
DateTimeOffset StartTime { get; set; }
int Priority { get; set; }
bool Repeat { get; set; }
bool Enabled { get; set; }
}
public interface IJob : IJobBase
{
void Trigger();
}
public interface IJob<out T> : IJobBase
{
T Trigger();
}
Run Code Online (Sandbox Code Playgroud)