内部界面导致DRY违规

时间:2016-07-07 07:12:59

标签: c# dry internal-class

我有以下内容:

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类公开。

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您实际上并不需要两种方法。只需拿出" IGetPerson。" (包括点)从第一个覆盖,然后取出第二个方法。 如果您正在使用VS 2015的快速操作,请尝试选择"实施界面"而不是"明确实现接口。"