如果我要创建一个像下面这样的新对象,默认情况下会有哪个访问修饰符?
Object objectA = new Object();
答案 0 :(得分:33)
任何成员都将拥有最严格的成员 - 因此在这种情况下,objectA
的可访问性为private
。 (假设它是一个实例变量。它作为局部变量没有任何意义,因为它们没有任何访问规则。)
所以这个:
class Foo
{
Object objectA = new Object();
}
相当于:
internal class Foo
{
private Object objectA = new Object();
}
“默认为最私密”意味着对于类型,可访问性取决于上下文。这样:
class Outer
{
class Nested
{
}
}
相当于:
internal class Outer
{
private class Nested
{
}
}
...因为您不能拥有私有的非嵌套类。
只有一个的地方,添加一个显式的访问修饰符可以使某些东西比它没有更私密,并且在属性声明中:
public string Name { get; set; } // Both public
public string Name { get; private set; } // public get, private set
答案 1 :(得分:3)
void Foo()
{
// private in method scope
Object objectA = new Object();
}
class Bar()
{
// private in class scrope
Object objectA = new Object();
}
答案 2 :(得分:3)
默认为私人。
答案 3 :(得分:2)
作为班级成员:private
。
如果它是在方法体内声明的局部变量,则它在该方法之外没有可访问性。但我猜你已经知道了。
答案 4 :(得分:2)
答案 5 :(得分:0)
类/类型本身将默认为“internal”。您创建的对象将默认为“私有”。
答案 6 :(得分:0)
默认情况下,类和结构声明为内部!
了解更多here
答案 7 :(得分:0)
类的访问说明符是内部的。
变量的访问说明符是私有的。