我试图实现一个非常简单的接口,并使用它来访问一个类型的属性,该类型本身通过如下接口访问:
interface ITest
{
IOther Other { get; }
}
interface IOther { }
class Other : IOther { }
class Test : ITest
{
public Other Other { get; set; }
}
但是我收到以下构建错误:
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'.
现在我明白错误在说什么,但我不明白为什么。 '其他'实施' IOther'那问题为什么呢?
一个不完美的解决方案是明确实现接口:
class Test : ITest
{
public Other Other { get; set; }
IOther ITest.Other
{
get { return this.Other; }
}
}
为什么需要这个样板?
感谢。
编辑:假设在我遇到此问题的实际非示例代码中,声明Test不是一个选项:
class Test : ITest
{
public IOther Other { get; set; }
}