我一直在重构我目前正在进行的项目的代码库,以便超出程序集限制的无用的类/接口应该被声明为内部(而不是公共的) 。但是我碰到下面的代码有问题:我如何实现内部接口的成员
internal interface IFirstInterface
{
...
}
internal interface ISecondInterface
{
IFirstInterface First{ get; }
...
}
public class Implementer : ISecondInterface
{
public IFirstInterface First {get; private set;}
...
}
我的问题:
为什么内部接口成员已被公开实施?如果您在内部类上实现接口,那么实现的成员不应该是内部的吗?这不是一个大问题,因为接口成员无论如何都不能公开访问,因为该类是内部的。这似乎反直觉。
的主要问题与上面,因为我不能有IFirstInterface一个公共的getter,因为它是据称内部接口即我从编译器收到以下错误场景:
可访问性不一致:财产 型 'IFirstInterface' 比属性访问少 'Implementer.First'
是疗法以任何方式解决这个问题?
注意:我意识到在这个重构练习中可能没有什么价值,但我认为这将是一个很好的方式来更深入地理解内部修饰符的含义。
如果它的一个选项,您可以通过使用一个抽象基类,而不是绕过的接口方法是公开的限制。 – 2017-01-25 14:30:53