This question already has answers here:
Do adding properties to an interface prevent creating private/protected “set” in derived types?

(2个答案)


6年前关闭。





如何使用具有私有集的属性实现接口,例如:

public interface IExample{
      int Test{private set;get;}
}

public class Example : IExample{
      private int _test;
      public int Test{
            private set{
               _test=value;
            }
            get{
               return _test;
            }
      }
}


我知道为什么它不能编译,因为接口中不允许使用访问修饰符,但是{set; get;}也不起作用。

我尝试了其他几种方法,但均未成功,但以上示例最能说明问题。

最佳答案

看来您正在尝试确保没有人呼叫您财产的设定者。您可以通过从公共接口中省略它来做到这一点:

public interface IExample{
      int Test{get;}
}

public class Example : IExample{
      private int _test;
      public int Test{
            private set{
               _test=value;
            }
            get{
               return _test;
            }
      }
}

关于c# - 实现带有私有(private)集的属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24051231/

10-12 04:07