如何在子类中正确覆盖接口的显式实现?
public interface ITest
{
string Speak();
}
public class ParentTest : ITest
{
string ITest.Speak()
{
return "Meow";
}
}
public class ChildTest : ParentTest
{
// causes compile time errors
override string ITest.Speak()
{
// Note: I'd also like to be able to call the base implementation
return "Mooo" + base.Speak();
}
}
上面是对语法的最佳猜测,但显然是错误的。它会导致以下编译时错误:
error CS0621:
`ChildTest.ITest.Speak()': 虚成员或抽象成员不能是私有的
error CS0540:
ChildTest.ITest.Speak()': 包含类型未实现接口
ITest'
error CS0106:
`override' 修饰符不适用于此项
实际上,我可以在不使用显式接口的情况下使其正常工作,因此这并不会阻止我,但出于好奇,如果我想使用显式接口来完成这个操作,正确的语法是什么?
var some_object = new my_class()
会感到奇怪;虽然蛇形命名法并没有错,但在C#中却感觉不合适。 - Casey