Відповіді:
внутрішній призначений для сфери складання (тобто доступний лише з коду в тому ж .exe або .dll)
private призначений для сфери застосування класу (тобто доступний лише з коду того ж класу).
Знайдіть пояснення нижче. Ви можете ознайомитися з цим посиланням для отримання більш детальної інформації - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
Приватний: - До приватних членів доступні лише власні типи (власний клас).
Внутрішній: - Внутрішній член доступний лише у складі за спадщиною (його похідний тип) або за екземпляром класу.

Довідка:
Protected Internalзабезпечує ширший доступ, ніж Protected.
protected internalце protected OR internal.
With Typeозначає?
ANDце матриця до справжнього | false | false | false protected internal. не інтуїтивно зрозумілий. натомість це правда | правда | правда | хибність, як ніби OR'd.
private protectedне дуже інтуїтивно зрозумілі. Докладніше: docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
internalчлени видно всім кодом у складі, в якому вони оголошені.
(І для інших збірок, на які посилається [InternalsVisibleTo]атрибут )
privateчлени видно лише класу, що декларує. (включаючи вкладені класи)
Зовнішній (не вкладений) клас не може бути оголошений private, оскільки не існує сфери, що дозволяє зробити його приватним.
Щоб відповісти на запитання, яке ви забули задати, protectedчлени схожі на privateчленів, але їх також видно в усіх класах, які успадковують тип оголошення. (Але лише на виразі принаймні типу поточного класу)
private - інкапсуляція у класі / обсязі / структурі.
внутрішній - інкапсуляція в збори.
Приватні члени можуть бути доступні лише в тій частині класу або структурі, в якій вони оголошені.
Внутрішні типи або члени доступні лише у файлах однієї збірки
Внутрішній дозволить вам посилатися, скажімо, на статичний клас доступу до даних (для безпеки потоку) між декількома класами бізнес-логіки, при цьому не підписуючи їх на спадкування цього класу / подорожі один над одним у пулах підключення, і в кінцевому рахунку уникати дозволу класу DAL сприяти доступу на громадському рівні. Це має незліченну кількість дизайну та кращих практик.
Entity Framework добре використовує цей тип доступу
внутрішні члени доступні в межах зборів (доступні лише в тому ж проекті)
приватні члени доступні в межах одного класу
У рішенні є 2 проекти (Project1, Project2), а Project1 має посилання на Project2.