Antworten:
intern ist für den Assemblybereich vorgesehen (dh nur über Code in derselben EXE- oder DLL-Datei zugänglich).
privat ist für den Klassenbereich (dh nur über Code in derselben Klasse zugänglich).
Hier finden Sie eine Erklärung. Sie können diesen Link für weitere Details überprüfen - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
Privat: - Auf private Mitglieder kann nur innerhalb des eigenen Typs (eigene Klasse) zugegriffen werden.
Intern: - Auf interne Mitglieder kann nur innerhalb der Assembly durch Vererbung (deren abgeleiteter Typ) oder nach Instanz der Klasse zugegriffen werden.
Referenz :
Protected Internal
bietet einen breiteren Zugang als Protected
.
protected internal
wie protected OR internal
.
With Type
das
AND
diese Matrix für wahr | falsch | falsch | falsch für fungieren würde protected internal
. nicht intuitiv. stattdessen ist es wahr | wahr | wahr | falsch, als ob OR'd
.
private protected
nicht sehr intuitiv sind. Für Details: docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
internal
Mitglieder sind für den gesamten Code in der Assembly sichtbar, in der sie deklariert sind.
(Und für andere Assemblys, auf die mit dem [InternalsVisibleTo]
Attribut verwiesen wird. )
private
Mitglieder sind nur für die deklarierende Klasse sichtbar. (einschließlich verschachtelter Klassen)
Eine äußere (nicht verschachtelte) Klasse kann nicht deklariert werden private
, da es keinen Bereich gibt, für den sie privat gemacht werden kann.
Um die Frage zu beantworten, die Sie vergessen haben zu stellen, sind protected
Mitglieder wie private
Mitglieder, aber auch in allen Klassen sichtbar, die den deklarierenden Typ erben. (Aber nur bei einem Ausdruck mindestens des Typs der aktuellen Klasse)
privat - Kapselungen in Klasse / Umfang / Struktur '.
intern - Kapselung in Baugruppen.
Private Mitglieder sind nur innerhalb des Hauptteils der Klasse oder der Struktur zugänglich, in der sie deklariert sind.
Auf interne Typen oder Mitglieder kann nur innerhalb von Dateien in derselben Assembly zugegriffen werden
Intern ermöglicht es Ihnen, beispielsweise auf eine statische Datenzugriffsklasse (aus Gründen der Thread-Sicherheit) zwischen mehreren Geschäftslogikklassen zu verweisen, ohne diese zu abonnieren, um diese Klasse / diesen Trip in Verbindungspools übereinander zu erben und letztendlich zu vermeiden, dass eine DAL-Klasse zugelassen wird den Zugang auf öffentlicher Ebene zu fördern. Dies hat unzählige Hintergründe in Bezug auf Design und Best Practices.
Entity Framework nutzt diese Art des Zugriffs gut
Interne Mitglieder sind innerhalb der Assembly zugänglich (nur im selben Projekt zugänglich).
Private Mitglieder sind innerhalb derselben Klasse zugänglich
Es gibt 2 Projekte in einer Lösung (Projekt1, Projekt2) und Projekt1 hat einen Verweis auf Projekt2.