3

我有一个服务层结构可以在 Java 上正常工作,没有任何错误。但是当我在 C# 上尝试它时,它并没有像我预期的那样工作。我有一个公共服务接口IService,它有一个Update返回另一个接口的方法IUpdateResult。我有一个自定义服务接口IAService,如下所示。

public interface IService 
{
    IUpdateResult Update();
}

public interface IAService : IService 
{     

} 

最后我有一个UpdateResult实现IUpdateResult.

public class UpdateResult : IUpdateResult
{
}

我正在实现如下所示的自定义服务类,但它不允许我这样做。

public class AService : IAService
{
    public UpdateResult Update()
    {
        // bla bla
    }
}

正如我所提到的,它以我想要的方式在 Java 上工作。为什么 C# 给我错误?

4

1 回答 1

4

正如我所提到的,它以我想要的方式在 Java 上工作。为什么 C# 给我错误?

因为 Java 和 C# 是不同的语言,由不同的团队设计。:)

别担心,正如评论所说,此功能计划用于 C# 9

现在,您可以使用显式接口实现

public class AService : IAService
{
    public UpdateResult Update()
    {
        return null;
    }
    
    IUpdateResult IService.Update() { return Update(); }
}
于 2020-10-08T08:21:07.057 回答