У любого участника всегда будет самый ограниченный доступный, поэтому в этом случае доступность 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