gpt4 book ai didi

c# - 为什么在 C# 中需要提及访问修饰符来实现接口(interface)属性?

转载 作者:行者123 更新时间:2023-12-03 05:53:49 26 4
gpt4 key购买 nike

接口(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com