【发布时间】:2012-01-18 17:39:59
【问题描述】:
据我所知,private
是 C# 中默认的everywhere(这意味着如果我不写public
、protected
、internal
等,它将默认为private
)。 (如果我错了,请纠正我。)
那么,编写该关键字的原因是什么,或者为什么它甚至存在于成员中?
例如,当自动生成事件处理程序时,它看起来像这样:
private void RatTrap_MouseEnter(object sender, CheeseEventArgs e)
{
}
但是,如果这是隐含的和默认的,为什么它甚至会写私有呢?只是为了让新手开发人员(他们不知道这是 C# 的默认设置)知道它是私有的吗?还是编译器有区别?
此外,是否存在写“私人”(单独)会改变成员的可访问性的情况?
【问题讨论】:
-
IIRC,“*”类型默认为
internal
。 -
所有内容的默认值都不是私有的,如所示,作为一般经验法则,最好是明确的。
-
所有内容的默认设置是“尽可能私密”。显然,非嵌套类不能是私有的,或者没有任何东西可以实例化或使用它。但是成员默认是私有的,嵌套类默认是私有的。默认情况下,C# 中的所有内容都具有它所能拥有的最受限制的可见性级别。
标签: c# private specifications access-modifiers auto-generate