8

В C# в чем разница между public, private, protected и отсутствием модификатора доступа?

1

Всем привет! На протяжении всех моих лет в колледже я использовал модификатор доступа public, и теперь хочу разобраться в разнице между public, private и protected.

Также хотел бы узнать, что делает static по сравнению с тем, если его нет. Заранее спасибо за помощь!

5 ответ(ов)

1

Public — Если вы можете видеть класс, то вы можете видеть и метод.

Private — Если вы часть этого класса, то вы можете видеть метод, иначе — нет.

Protected — То же самое, что и с Private, плюс все наследники тоже могут видеть этот метод.

Static (класс) — Помните различие между "Классом" и "Объектом"? Забудьте об этом. Они одинаковы, когда речь идет о "static"... класс является единственным и неповторимым экземпляром самого себя.

Static (метод) — Каждый раз, когда вы вызываете этот метод, он будет иметь ссылку, независимую от фактического экземпляра класса, к которому он принадлежит.

0

public — доступен любому, отовсюду.

private — доступен только изнутри класса, к которому он принадлежит.

protected — доступен изнутри класса или из любого объекта, который наследует от данного класса.

В VB нет ничего, что было бы эквивалентно null.

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

0

Статический метод позволяет обращаться к нему без создания экземпляра класса. Вы можете получить доступ к нему непосредственно из определения класса.

0

Будьте осторожны! Обратите внимание на доступность ваших классов. Публичные и защищенные классы и методы по умолчанию доступны для всех.

Также стоит отметить, что Microsoft не всегда явно показывает модификаторы доступа (такие как public, protected и т.д.) при создании новых классов в Visual Studio. Поэтому важно тщательно продумать доступность вашего класса, так как это "дверь" к вашим внутренним реализациям.

0

Относительно вопроса о Nothing:

  • Типы пространства имен по умолчанию являются внутренними (internal).
  • Любой член типа, включая вложенные типы, по умолчанию имеют уровень доступа private.
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь