为什么我在这里需要一个显式的接口声明?(C#)

mis*_*not 5 c# interface explicit-interface

我正在尝试实现一个非常简单的接口,并使用它来访问一个类型的属性,该属性本身通过如下接口访问:

interface ITest
{
    IOther Other { get; }
}

interface IOther { }

class Other : IOther { }

class Test : ITest
{
    public Other Other { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是我收到以下构建错误:

Error   13  'Test' does not implement interface member 'ITest.Other'.   'Charger.Shared.Test.Other' cannot implement 'ITest.Other' because it does not have the matching return type of 'IOther'.
Run Code Online (Sandbox Code Playgroud)

现在我明白错误在说什么,但我不明白为什么.'其他'实施'IOther'所以问题为何?

一个不完美的解决方案是明确实现接口:

class Test : ITest
{
    public Other Other { get; set; }

    IOther ITest.Other
    {
        get { return this.Other; }
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么需要这个样板?

谢谢.

编辑:假设在我遇到此问题的实际非示例代码中,声明Test不是一个选项:

class Test : ITest
{
    public IOther Other { get; set; }
}
Run Code Online (Sandbox Code Playgroud)