相关疑难解决方法(0)

为什么我不能拥有受保护的接口成员?

反对在接口上声明受保护访问成员的论点是什么?例如,这是无效的:

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# interface protected access-modifiers

67
推荐指数
6
解决办法
5万
查看次数

C#接口的非公共成员

在C#中,当您实现接口时,所有成员都是隐式公共的.那岂不是更好,如果我们可以指定可访问修饰符(protected,internal,除了private当然的),或者我们应该使用抽象类呢?

.net c# interface

30
推荐指数
4
解决办法
3万
查看次数

为什么在 C# 中需要提及实现接口属性的访问修饰符?

默认情况下,接口和实现接口的类中的方法是公共的。他们不需要提到的访问器。

为什么属性,特别是在实现接口的类中,需要提到公共访问修饰符?无论如何都不允许使用其他修饰符。

c# properties interface access-modifiers

3
推荐指数
1
解决办法
1203
查看次数

标签 统计

c# ×3

interface ×3

access-modifiers ×2

.net ×1

properties ×1

protected ×1