界面的私有成员
如果在我的程序中我有接口,那么它的所有成员都是隐式公开的 。 在实现该接口的类中,我必须公开该成员(属性)。
是否可以将其设为私有 ?
是否可以将接口实现设为私有?
不完全私有 – 接口表示一组公共方法和属性 。 没有办法使接口实现私有化。
你可以做的是明确实现:
public interface IFoo { void Bar(); } public class FooImpl { void IFoo.Bar() { Console.WriteLine("I am somewhat private.") } private void Bar() { Console.WriteLine("I am private.") } }
现在调用IFoo.Bar()
的唯一方法是通过接口显式 :
FooImpl f = new FooImpl(); f.Bar(); // compiler error ((IFoo)f).Bar();
简答:没有。
接口的基本思想是它的类和组件之间的契约,这意味着它的成员是供公众使用的。 如果您需要私人成员,这可能意味着您可能需要重新审视您的设计。
接口意味着公开曝光。
你可以做的是切换到带有受保护抽象成员的抽象基类。 在许多方面,这将通过强制实施者在没有公开的情况下获得方法来实现相同目的。
public abstract class MyBase { protected abstract void DoSomething(); }
对此的主要认识是,您不会像使用接口那样使用抽象类获得多重inheritance,因此请权衡这种需求对您的重要性。
上述就是C#学习教程:界面的私有成员分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1025495.html