Внутренние и частные модификаторы доступа

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

Ответ 1

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

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

Ответ 2

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

Частный:. Частные члены доступны только в собственном типе (собственный класс).

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

enter image description here

Ссылка:

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

Ответ 3

Члены

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

Члены

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

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

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

Ответ 4

private - инкапсуляции в классе/области/структуре ect '.

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

Ответ 5

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

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

Ответ 6

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

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