Hermetyzacja i modyfikatory dostępu

0

Witam, ucząc się C# doszedłem do tematu hermetyzacji. Wszędzie można znaleźć jak modyfikatory (private, public,protected, internal,protected internal) działają na pola/zmienne klasy oraz na metody.
Jednak nie zauważyłem aby gdzieś było wytłumaczone jakich modyfikatorów można używać i do czego służą te przed słowem kluczowym class,
np.public static class Auto.
Wytłumaczy mi ktoś jakie modyfikatory mogę stosować przed tym słowem kluczowym? (pewnie te same jak do metod i pól ale wolę się upewnić)
Jeżeli przed class jest brak modyfikatora czyli jest domyślnie private, a pola i metody tej klasy są public to czy różni się to czymś jak by przed class stał inny modyfikator?

1

Domyślnie klasy są internal czyli widać je tylko w projekcie w którym zostały stworzone, a nie tak jak metody private. Klasy i struktury mogą być private/protected jeśli piszesz w klasę w klasie. Takie coś może mieć miejsce jak piszesz własną złożoną strukturę danych i potrzebujesz tajnej klasy to tym czasowego grupowania danych, ale to bardzo rzadko mam miejsce. Jeśli klasa jest internal a pole public, to modyfikator dostępu klasy ma pierwszeństwo i pole jest efektywnie internal. Może wydawać sie to dziwne ale jest wygodne bo można zmienić dostępność klasy szybko w jednym miejscu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1