C#是否需要private关键字?
private
不是关于运行时行为。这是为了让您的应用程序可以维护。 private
隐藏的内容只能通过public
或protected
成员影响其课程以外的代码。
所以对于运行时行为的答案是'否',开发者行为'是'!
我明白了;我的意思是编译时和元数据行为。 – SLaks 2011-06-14 19:57:39
这个问题似乎更多的是这样一个事实,即如果完全忽略访问修饰符,默认情况下几乎总是导致“私有”访问。但现在发布的两个答案表明,它只是'差不多'。 – 2011-06-14 19:58:46
的情况是,省略了关键字[
private
将造成不同的行为
大卫偏航的回答给了最常见的情况。下面是另一个问题:
在Account_generated.cs
:
// Generated file. Do not edit!
public partial class Account
{
...
private partial class Helper
{
...
}
...
}
在AccountHandCoded.cs
:
public partial class Account
{
...
public partial class Helper
{
...
}
...
}
上面的代码将不编译。 Account
的第一个“部分”要求嵌套类Helper
为private
。因此,手动编码器公开制造Helper
的尝试必须失败!
但是,如果该类的第一部分简单地省略了关键字private
,则所有的都可以编译。
所以对于partial
类(和结构,接口),在存取级别无申报
partial class Name
的意思是“这个类的其他‘部件’被允许决定无障碍应该是什么”。
虽然明确地给出了默认的可访问性(非嵌套类型为internal
,嵌套类型为private
)意味着“该类必须具有最受限制的访问权限,而其他'部分'不能改变该事实。
我已经删除了我的答案,因为事实证明您不能在名称空间范围内拥有私人委托。 – 2011-06-14 20:02:41
准确。一个“私有”非嵌套类型没有任何意义;它会和'internal'一样。 – SLaks 2011-06-14 20:03:35