反对在接口上声明受保护访问成员的论点是什么?例如,这是无效的:
public interface IOrange
{
public OrangePeel Peel { get; }
protected OrangePips Seeds { get; }
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,接口IOrange将保证实现者至少OrangePips向其继承者提供实例.如果实现者想要,他们可以扩大范围public:
public class NavelOrange : IOrange
{
public OrangePeel Peel { get { return new OrangePeel(); } }
protected OrangePips Seeds { get { return null; } }
}
public class ValenciaOrange : IOrange
{
public OrangePeel Peel { get { return new OrangePeel(); } }
public OrangePips Seeds { get { return new OrangePips(6); …Run Code Online (Sandbox Code Playgroud) 在C#中,当您实现接口时,所有成员都是隐式公共的.那岂不是更好,如果我们可以指定可访问修饰符(protected,internal,除了private当然的),或者我们应该使用抽象类呢?
默认情况下,接口和实现接口的类中的方法是公共的。他们不需要提到的访问器。
为什么属性,特别是在实现接口的类中,需要提到公共访问修饰符?无论如何都不允许使用其他修饰符。