仅使用通用接口方法

Dan*_*gen -1 c#

当我尝试实现以下代码时

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)

我要同时实现TriggerTrigger<bool>方法,而我只需要Trigger<bool>在这种情况下,反之亦然非泛型类型.

Tho*_*que 5

您可以以不同方式拆分接口,以便非泛型接口不公开该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)