Модификаторы внутреннего и частного доступа


в чем разница между internal и private модификаторы доступа в C#?

6 343

6 ответов:

внутренние предназначен для области сборки (т. е. доступен только из кода в том же .exe или .dll)

private для области действия класса (т. е. доступно только из кода в том же классе).

найти объяснение ниже. Вы можете проверить эту ссылку для получения более подробной информации - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html

Private: - частные члены доступны только в пределах собственного типа (собственный класс).

внутренние: - внутренний элемент доступен только в сборке по наследованию (его производный тип) или по экземпляру класс.

enter image description here

ссылки :

dotnetbull-что такое модификатор доступа в c#

internal члены видны для всего кода в сборке, в которой они объявлены.
(И для других сборок, на которые ссылаются с помощью [InternalsVisibleTo] атрибут)

private члены видны только для класса объявления. (включая вложенные классы)

по (надеюсь) очевидным причинам, внешний (не вложенный) класс не может быть объявлен private.

чтобы ответить на вопрос, который вы забыли задать,protected члены как private членов, но также отображаются во всех классах, наследующих тип объявления. (Но только по выражению хотя бы типа текущего класса)

private - инкапсуляции в class/scope / struct ect'.

внутренние - инкапсуляция в сборках.

Private члены доступны только в теле класса или структуры, в которой они объявлены.

внутренние типы или члены доступны только в файлах одной сборки

Internal позволит вам ссылаться, скажем, на статический класс доступа к данным (для потокобезопасности) между несколькими классами бизнес-логики, не подписывая их на наследование этого класса/отключение друг друга в пулах соединений и, в конечном счете, не позволяя классу DAL продвигать доступ на общедоступном уровне. Это имеет бесчисленные подкладки в дизайне и лучших практиках.

Entity Framework хорошо использует этот тип доступа