我有以下内容:
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();
}
}
结果是除非我遗漏了什么,否则采用内部接口将不可避免地导致这种 DRY 违规。另一种方法是公开 Person 类。
我错过了什么吗?