使用专用集实现属性
本文关键字:实现 属性 专用 | 更新日期: 2023-09-27 18:06:52
如何使用
具有私有集的属性实现接口,例如:
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;
}
}
}
我理解为什么它不会编译,因为界面中不允许使用访问修饰符
正确。
interface
不能惹。实施interface
时.您必须遵守它摆在您面前的合同。
这意味着,如果您在interface
定义中指定了public
getter 和 setter,则必须具有 getter 和 setter。这就是这个想法 - interface
表示实现它的类型的公共协定。
从界面中省略它,您可以自由地将您想要的任何其他内容放在实现类型上。