SLa*_*aks 25 c# keyword language-lawyer
(受此评论的启发)
是否存在需要使用private关键字的情况?
(换句话说,省略关键字会导致不同行为的情况)
Dav*_*Yaw 47
public class Foo
{
public int Bar { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
省略"私人"一词会改变可访问性.
省略关键字[
private]会导致不同行为的情况
David Yaw的回答给出了最常见的情况.这是另一个:
在Account_generated.cs:
// Generated file. Do not edit!
public partial class Account
{
...
private partial class Helper
{
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
在AccountHandCoded.cs:
public partial class Account
{
...
public partial class Helper
{
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
上面的代码不会编译.第一个"部分"的Account 要求的嵌套类Helper是private.因此,手工编码器Helper公开的尝试必定会失败!
但是,如果类的第一部分只是省略了private关键字,那么所有都会编译.
因此对于partial类(和结构,接口),访问级别的声明
partial class Name
Run Code Online (Sandbox Code Playgroud)
意味着"允许该类的其他'部分'决定可访问性应该是什么".
而明确给出默认可访问性(internal适用于非嵌套类型和嵌套类型private)意味着"此类必须具有最受限制的访问权限,而其他"部分"不能改变这一事实".
| 归档时间: |
|
| 查看次数: |
1891 次 |
| 最近记录: |