r.r*_*r.r 13 c# object access-modifiers
如果我将创建一个如下所示的新对象,默认情况下它具有哪个访问修饰符?
Object objectA = new Object();
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 33
任何成员总是拥有最严格的成员 - 所以在这种情况下,可访问性objectA
是private
.(假设它是一个实例变量.它作为局部变量没有意义,因为它们没有任何访问规则.)
所以这:
class Foo
{
Object objectA = new Object();
}
Run Code Online (Sandbox Code Playgroud)
相当于:
internal class Foo
{
private Object objectA = new Object();
}
Run Code Online (Sandbox Code Playgroud)
"默认为最私密"意味着对于类型,可访问性取决于上下文.这个:
class Outer
{
class Nested
{
}
}
Run Code Online (Sandbox Code Playgroud)
相当于:
internal class Outer
{
private class Nested
{
}
}
Run Code Online (Sandbox Code Playgroud)
...因为你不能有一个私有的非嵌套类.
只有一个地方,添加一个显式访问修饰符可以使某些东西比它没有更私密,并且在属性声明中:
public string Name { get; set; } // Both public
public string Name { get; private set; } // public get, private set
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7101 次 |
最近记录: |