关于 运行 在 Java 而不是在 C# 中的接口的问题
A question about interfaces that run on Java but not in C#
我有一个服务层结构在 Java 上运行,没有任何错误。但是当我在 C# 上尝试时,它并没有像我预期的那样工作。我有一个公共服务接口 IService
,它有一个方法 Update
,returns 另一个接口 IUpdateResult
。我有一个自定义服务界面 IAService
,如下所示。
public interface IService
{
IUpdateResult Update();
}
public interface IAService : IService
{
}
最后我有一个 UpdateResult
class 实现了 IUpdateResult
.
public class UpdateResult : IUpdateResult
{
}
我正在实施自定义服务 class,如下所示,它不允许我这样做。
public class AService : IAService
{
public UpdateResult Update()
{
// bla bla
}
}
正如我提到的,它正在按照我想要的方式 Java 工作。为什么 C# 给我错误?
As I mentioned it's working on Java the way I want. Why does C# give me error?
因为Java和C#是不同的语言,由不同的团队设计。 :)
别担心,因为 said, this feature is planned for C# 9。
现在,您可以使用 explicit interface implementation:
public class AService : IAService
{
public UpdateResult Update()
{
return null;
}
IUpdateResult IService.Update() { return Update(); }
}
我有一个服务层结构在 Java 上运行,没有任何错误。但是当我在 C# 上尝试时,它并没有像我预期的那样工作。我有一个公共服务接口 IService
,它有一个方法 Update
,returns 另一个接口 IUpdateResult
。我有一个自定义服务界面 IAService
,如下所示。
public interface IService
{
IUpdateResult Update();
}
public interface IAService : IService
{
}
最后我有一个 UpdateResult
class 实现了 IUpdateResult
.
public class UpdateResult : IUpdateResult
{
}
我正在实施自定义服务 class,如下所示,它不允许我这样做。
public class AService : IAService
{
public UpdateResult Update()
{
// bla bla
}
}
正如我提到的,它正在按照我想要的方式 Java 工作。为什么 C# 给我错误?
As I mentioned it's working on Java the way I want. Why does C# give me error?
因为Java和C#是不同的语言,由不同的团队设计。 :)
别担心,因为
现在,您可以使用 explicit interface implementation:
public class AService : IAService
{
public UpdateResult Update()
{
return null;
}
IUpdateResult IService.Update() { return Update(); }
}