在C#中使用辅助功能修饰符继承属性

pro*_*eek 9 c# inheritance properties

我试图继承接口,并将一些自动生成的set属性设置为private.这是一个例子.

public class MyClass
{
    public interface A 
    {
        int X {get; set;}
    }
    public interface B : A
    {
        int Y {get; set;}
    }

    public class C : A
    {
        public int X {get; private set;}
    }
Run Code Online (Sandbox Code Playgroud)

当我试图编译它.我收到了一个错误'MyClass.C' does not implement interface member 'MyClass.A.X.set'. 'MyClass.C.X.set' is not public..

我尝试private set;iterface A,但我又得到了这个错误:'MyClass.A.X.set': accessibility modifiers may not be used on accessors in an interface.

C#中不允许使用此辅助功能修饰符吗?

Ree*_*sey 24

我试过私人套装; 在iterface A中,但我又遇到了这个错误

如果您的接口仅要求可检索属性,则将其定义为:

public interface A 
{
    int X {get;}  // Leave off set entirely
}
Run Code Online (Sandbox Code Playgroud)