C# 使用私有集实现属性

C# 使用私有集实现属性,c#,class,interface,C#,Class,Interface,如何使用具有私有集的属性实现接口,例如: public interface IExample{ int Test{private set;get;} } public class Example : IExample{ private int _test; public int Test{ private set{ _test=value; } get{

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

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
getter和setter,如果您在
接口定义中指定了这样的getter和setter。这就是想法——
接口
代表实现它的类型的公共契约


从接口中省略它,您就可以在实现类型上随意添加任何其他内容。

看起来您正在尝试确保没有人调用您属性上的setter。您只需在公共界面中省略它即可:

public interface IExample{
      int Test{get;}
}

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

但是{set;get;}也不起作用。
-真的吗?你必须在
class
中执行
set
而不是
private set
。{set;get;}在接口中工作,但不允许我在其实现中使用private set。
{get;}
在接口中,在实现它的对象中,
{get;private set;}
,如是的,谢谢,这就是我一直在寻找的答案。