#c# #internal
#c# #внутренний
Вопрос:
Просто небольшой вопрос: я хочу, чтобы только один класс моей сборки был общедоступным, а все остальное невидимым для внешнего. Я просто устанавливаю все другие классы с их методами и свойствами на internal? Это вообще хороший подход?
Комментарии:
1. «Это вообще хороший подход?» Ну, в этом нет ничего изначально неправильного, но вы не даете большого контекста, чтобы понять, правильный ли это подход.
2. Как заметил @Christos, модификатор доступа по умолчанию для класса является внутренним
Ответ №1:
Все классы по умолчанию являются internal
. Так что, если вы хотите, чтобы они были public
, вы должны заявить об этом.
Таким образом, вы можете сделать единственный класс, который вы хотите сделать общедоступным, общедоступным и пометить остальные из них как internal
, поскольку это повышает читаемость вашего кода, как указал Silvermind в своем комментарии.
Когда класс является internal
, к нему могут быть доступны только типы в одной сборке. При этом вы должны решить, будут ли методы типа, который является внутренним, использоваться другими типами внутри той же сборки или нет. Если метод не будет вызван другим типом, то вы должны объявить его как a private
, в противном случае как a public
. То же самое относится и к свойствам. Кроме того , членом класса также может быть protected
. Для получения более подробной информации о последнем, пожалуйста, загляните сюда.
Комментарии:
1. Просто примечание, но явное обозначение класса как внутреннего — лучший подход, чем ничего не указывать, чтобы подразумевать поведение по умолчанию. ИМО, программисту более ясно, каково было фактическое намерение.
Ответ №2:
По умолчанию все классы являются Internal
. Таким образом, вам не нужно явно указывать классам значение internal.