接口(interface)中和实现接口(interface)的类中的方法默认是公共(public)的。他们不需要提到的访问器。
为什么属性(特别是实现接口(interface)的类中的属性)需要提及 public 访问修饰符? 无论如何,其他修饰符都是不允许的。
最佳答案
这不准确。
接口(interface)中的任何内容都是公共(public)的,即使接口(interface)本身是内部的,因此您不能为接口(interface)的任何成员设置任何访问修饰符。
在实现接口(interface)的类中,显式实现该接口(interface)的任何成员(属性、方法、事件或索引器)都是公共(public)的,您也无法为其设置任何访问修饰符。< br/> 但是任何隐式实现接口(interface)的成员都必须指定访问修饰符。
由于接口(interface)中的所有内容都是公共(public)的,并且您无法根据其访问修饰符重载方法,因此任何其他修饰符都会生成编译错误。
为什么编译器强制您将隐式接口(interface)实现成员声明为公共(public)?
嗯,我不确定原因,但我认为这是因为类成员的默认访问修饰符是 private
,并且允许程序员隐式实现接口(interface)而无需指定 public
访问修饰符意味着 c# 编译器团队必须投入一些额外的工作才能实现这一点,并且(我认为)更重要的是,考虑到实现是隐式的,有可能使任何查看代码的开发人员感到困惑如果不知道接口(interface),您就无法知道类中的方法是接口(interface)的实现还是只是常规方法。
关于c# - 为什么在 C# 中需要提及访问修饰符来实现接口(interface)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49248902/