使用专用集实现属性

本文关键字:实现 属性 专用 | 更新日期: 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表示实现它的类型的公共协定

从界面中省略它,您可以自由地将您想要的任何其他内容放在实现类型上。