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