我有以下内容:
internal class Person {
}
internal interface IGetPerson {
Person GetPerson();
}
public class Cat: IGetPerson {
private Person _Person = new Person();
Person IGetPerson.GetPerson() {
return _Person;
}
internal Person GetPerson() { // dry violation -- necessary?
return _Person; // or return (this as IGetPerson).GetPerson();
}
}
似乎有必要进行以下编译,而不是“as”强制转换:
internal class SomeClass {
public static Person GetPerson(Cat someCat) {
return someCat.GetPerson();
}
}
结果是除非我遗漏了某些东西,否则采用内部界面将不可避免地导致这种干扰。另一种方法是将Person类公开。
我错过了什么吗?
答案 0 :(得分:0)
在这种情况下,您实际上并不需要两种方法。只需拿出" IGetPerson。" (包括点)从第一个覆盖,然后取出第二个方法。 如果您正在使用VS 2015的快速操作,请尝试选择"实施界面"而不是"明确实现接口。"