Odpowiedzi:
wewnętrzny jest dla zakresu zestawu (tj. dostępny tylko z kodu w tym samym pliku .exe lub .dll)
private jest dla zakresu klasy (tj. dostępne tylko z kodu w tej samej klasie).
Znajdź wyjaśnienie poniżej. Możesz sprawdzić ten link, aby uzyskać więcej informacji - http://www.dotnetbull.com/2013/10/public-protected-private-internal-access-modifier-in-c.html
Prywatne: - Członkowie prywatni są dostępni tylko w ramach własnego typu (własna klasa).
Wewnętrzne: - Element wewnętrzny jest dostępny tylko w zespole przez dziedziczenie (typ pochodny) lub przez instancję klasy.
Odniesienie :
Protected Internal
zapewnia szerszy dostęp niż Protected
.
protected internal
jak protected OR internal
.
With Type
znaczy
AND
tej matrycy do true | false | false | false protected internal
. nie intuicyjne. zamiast tego jest to prawda | prawda | prawda | fałsz jak gdyby OR'd
.
private protected
nie są zbyt intuicyjne. Szczegółowe informacje: docs.microsoft.com/en-us/dotnet/csharp/language-reference/…
internal
elementy są widoczne dla całego kodu w zestawie, w którym są zadeklarowane.
(I dla innych zestawów, do których odwołuje się ten [InternalsVisibleTo]
atrybut )
private
członkowie są widoczni tylko dla klasy deklarującej. (w tym zagnieżdżone klasy)
Zewnętrzna (nie zagnieżdżona) klasa nie może zostać zadeklarowana private
, ponieważ nie ma w niej zawartego zakresu, który mógłby uczynić ją prywatną.
Aby odpowiedzieć na pytanie, o którym zapomniałeś zadać pytanie, protected
członkowie są jak private
członkowie, ale są również widoczni we wszystkich klasach dziedziczących typ deklarujący. (Ale tylko po wyrażeniu co najmniej typu bieżącej klasy)
private - enkapsulacje w klasie / scope / struct ect ”.
wewnętrzna - hermetyzacja w złożeniach.
Członkowie prywatni są dostępni tylko w ciele klasy lub strukturze, w której są zadeklarowani.
Typy wewnętrzne lub elementy są dostępne tylko w plikach w tym samym zestawie
Wewnętrzne pozwolą na odniesienie, powiedzmy, statycznej klasy Dostęp do danych (dla bezpieczeństwa wątków) między wieloma klasami logiki biznesowej, bez subskrybowania ich w celu dziedziczenia tej klasy / tripu nad sobą w pulach połączeń, i ostatecznie unikając dopuszczenia klasy DAL promowanie dostępu na poziomie publicznym. Ma to niezliczone wsparcie w zakresie projektowania i najlepszych praktyk.
Entity Framework dobrze wykorzystuje ten typ dostępu
elementy wewnętrzne są dostępne w zespole (dostępne tylko w tym samym projekcie)
członkowie prywatni są dostępni w ramach tej samej klasy
W rozwiązaniu są 2 projekty (Project1, Project2), a Project1 ma odniesienie do Project2.