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;}
,如是的,谢谢,这就是我一直在寻找的答案。