Модификаторы внутреннего и частного доступа
в чем разница между internal
и private
модификаторы доступа в C#?
6 ответов:
внутренние предназначен для области сборки (т. е. доступен только из кода в том же .exe или .dll)
private для области действия класса (т. е. доступно только из кода в том же классе).
найти объяснение ниже. Вы можете проверить эту ссылку для получения более подробной информации - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
Private: - частные члены доступны только в пределах собственного типа (собственный класс).
внутренние: - внутренний элемент доступен только в сборке по наследованию (его производный тип) или по экземпляру класс.
ссылки :
dotnetbull-что такое модификатор доступа в c#
internal
члены видны для всего кода в сборке, в которой они объявлены.
(И для других сборок, на которые ссылаются с помощью[InternalsVisibleTo]
атрибут)
private
члены видны только для класса объявления. (включая вложенные классы)по (надеюсь) очевидным причинам, внешний (не вложенный) класс не может быть объявлен
private
.чтобы ответить на вопрос, который вы забыли задать,
protected
члены какprivate
членов, но также отображаются во всех классах, наследующих тип объявления. (Но только по выражению хотя бы типа текущего класса)
Private члены доступны только в теле класса или структуры, в которой они объявлены.
внутренние типы или члены доступны только в файлах одной сборки
Internal позволит вам ссылаться, скажем, на статический класс доступа к данным (для потокобезопасности) между несколькими классами бизнес-логики, не подписывая их на наследование этого класса/отключение друг друга в пулах соединений и, в конечном счете, не позволяя классу DAL продвигать доступ на общедоступном уровне. Это имеет бесчисленные подкладки в дизайне и лучших практиках.
Entity Framework хорошо использует этот тип доступа