为什么C#中存在默认的可访问性级别?

时间:2014-08-03 08:35:29

标签: c#

最近,我一直在用Java和C#做一些工作。在Java中,不指定类或类成员的可访问性使其成为包私有(其中不存在显式修饰符)。在C#中,这与the accessibility always defaults to不同,也可以使用相应的修饰符明确指定(例如,对于顶级类,internal)。

C#是一个设计良好的语言,为什么它甚至包含默认不同级别的这个功能,具体取决于类型和类型的嵌套,而不仅仅是强制用户显式?我不知道有什么好处吗?

1 个答案:

答案 0 :(得分:1)

我认为你的问题的答案是提供默认访问是很方便的,特别是在你通常希望一切都公开的结构中,并且通常很大一部分类是私有的。

然而,我个人喜欢它可以强制它明确,因为它使源代码更加一致,并阻止你忘记让成员公开 - 我的主要抱怨是我经常创建一个新属性或方法,忘记将其明确设置为public,然后当我稍后从外部类中使用它时,会感到困惑,因为该成员不会出现在自动完成列表中。实现已发生的事情并修复它需要花费更多的时间,而不仅仅是修复类似于&#34的警告;未明确指定x的访问级别"。