Если я создам новый объект, такой как следующий, который будет иметь модификатор доступа по умолчанию?
Object objectA = new Object();
Если я создам новый объект, такой как следующий, который будет иметь модификатор доступа по умолчанию?
Object objectA = new Object();
Любой член всегда будет иметь самый ограничительный доступ, поэтому в этом случае доступность 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
void Foo()
{
// private in method scope
Object objectA = new Object();
}
class Bar()
{
// private in class scrope
Object objectA = new Object();
}
Он по умолчанию закрыт.
َََََ
Как член класса: private
.
Если это локальная переменная, объявленная внутри тела метода, она не имеет доступа вне этого метода. Но я предполагаю, что вы уже это знали.
Для членов класса и членов структуры, включая вложенные классы и структуры, по умолчанию используется private.
Для классов и структур - внутреннее значение по умолчанию
Вы можете проверить MSDN для дальнейшего чтения.
Сам класс/тип по умолчанию будет "внутренним". Созданный объект по умолчанию будет "private".
Классы и структуры объявляются как внутренние по умолчанию!
Подробнее здесь
Спецификатор доступа класса является внутренним.
Спецификатор доступа переменной является закрытым.