Модификатор доступа по умолчанию в С#

Если я создам новый объект, такой как следующий, который будет иметь модификатор доступа по умолчанию?

Object objectA = new Object();

Ответ 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

Ответ 2

void Foo()
{
    // private in method scope
    Object objectA = new Object();
}

class Bar()
{
    // private in class scrope
    Object objectA = new Object();
}

Ответ 3

Он по умолчанию закрыт.

َََََ

Ответ 4

Как член класса: private.

Если это локальная переменная, объявленная внутри тела метода, она не имеет доступа вне этого метода. Но я предполагаю, что вы уже это знали.

Ответ 5

Для членов класса и членов структуры, включая вложенные классы и структуры, по умолчанию используется private.

Для классов и структур - внутреннее значение по умолчанию

Вы можете проверить MSDN для дальнейшего чтения.

Ответ 6

Сам класс/тип по умолчанию будет "внутренним". Созданный объект по умолчанию будет "private".

Ответ 7

Классы и структуры объявляются как внутренние по умолчанию!

Подробнее здесь

Ответ 8

Спецификатор доступа класса является внутренним.

Спецификатор доступа переменной является закрытым.