c#二义性调用实现和显式接口实现

我有个问题。我有一个类和接口,所以在类中我有 3 个看起来相似的方法,它们是:


    public CurrentsFlagAnalysis GetCurrentsFlag(DateTime startDateTime, DateTime endDateTime)

    {

        //some code

    }


    CurrentsFlagAnalysis ICurrentService<CurrentsFlagAnalysis>.GetCurrentsFlag(DateTime startDateTime, DateTime endDateTime, byte id)

    {

        //some code

    }


    List<CurrentsFlagAnalysis> ICurrentService<List<CurrentsFlagAnalysis>>.GetCurrentsFlag(DateTime startDateTime, DateTime endDateTime, byte id)

    {

        //some cone

    }

界面看起来像:


public interface ICurrentService <out TCurrent>

{

    TCurrent GetCurrentsFlag(DateTime startDateTime, DateTime endDateTime, byte id);


    CurrentsFlagAnalysis GetCurrentsFlag(DateTime startDateTime, DateTime endDateTime);

}

这个想法是使用具有相同名称和相同参数但不同返回类型的这两个方法类似于重载,但是当我调用此方法时遇到了问题,例如:


    public Task<List<CurrentsFlagAnalysis>> GetCurrentsFlagAsync(DateTime startDateTime, DateTime endDateTime, byte id)

    {

        return Task.Run(() => GetCurrentsFlag(startDateTime, endDateTime, id));

    }

从编译时间:


错误 CS1501:方法“GetCurrentsFlag”没有重载需要 3 个参数


和 Visual Studio 向我发送了一条不明确的调用和可能的参数 null 异常的消息;


我得到了模棱两可的调用实现错误,我知道我应该使用某种显式实现,但不知道要咬它。


另一件事是这件事是安全的,我应该重命名方法并忘记那个想法。


森栏
浏览 178回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP