Próbuję znaleźć odniesienie do domyślnej widoczności różnych aspektów języka C #. Typy klas, pola, metody, wyliczenia itp.
Czy ktoś może dostarczyć ich listę wraz z ich domyślną widocznością (tj. Bez przedrostka modyfikatora)?
Próbuję znaleźć odniesienie do domyślnej widoczności różnych aspektów języka C #. Typy klas, pola, metody, wyliczenia itp.
Czy ktoś może dostarczyć ich listę wraz z ich domyślną widocznością (tj. Bez przedrostka modyfikatora)?
Odpowiedzi:
Wszystkie poszukiwane informacje można znaleźć tutaj i tutaj (dzięki Reed Copsey ):
Od pierwszego linku:
Klasy i struktury, które są zadeklarowane bezpośrednio w przestrzeni nazw (innymi słowy, które nie są zagnieżdżone w innych klasach lub strukturach) mogą być publiczne lub wewnętrzne. Wewnętrzny jest wartością domyślną, jeśli nie określono modyfikatora dostępu .
...
Poziom dostępu dla członków klas i elementów członkowskich struktur , w tym klas zagnieżdżonych i struktur, jest domyślnie prywatny .
...
interfejsy domyślnie obsługują dostęp wewnętrzny .
...
Delegaci zachowują się jak klasy i struktury. Domyślnie mają dostęp wewnętrzny, gdy są zadeklarowane bezpośrednio w przestrzeni nazw, i dostęp prywatny, gdy są zagnieżdżone .
Z drugiego linku:
Typy najwyższego poziomu , które nie są zagnieżdżone w innych typach, mogą mieć tylko wewnętrzną lub publiczną dostępność. Domyślny dostępność dla tych typów jest wewnętrzne .
A dla typów zagnieżdżonych:
Członkowie domyślnej dostępności członków ---------- ---------------------------- enum public klasa prywatna interfejs publiczny struktura prywatna
Public. Enumczłonkowie są również Public. Prawdopodobnie mniej mylące jest po prostu użycie jawnego zakresu w twoim przypadku, ponieważ istnieje duże prawdopodobieństwo, że zostanie on przetłumaczony lub odczytany przez programistów C # w pewnym momencie. Niestety generowanie kodu w vb.net nie robi tego za Ciebie.
Z MSDN:
Typy najwyższego poziomu , które nie są zagnieżdżone w innych typach, mogą mieć tylko internallub publicułatwienia dostępu. Domyślna dostępność dla tych typów to internal.

Źródło: Poziomy dostępu (C # odniesienia) (06 grudnia th , 2017)
Domyślnie modyfikatorem dostępu dla klasy jest internal. Oznacza to, że klasa jest dostępna w ramach tego samego zestawu. Ale jeśli chcemy, aby klasa była dostępna z innych zestawów, musi zostać upubliczniona.
[assembly:InternalsVisibleTo("Friend1b")]
Domyślnie jest to private. O ile nie są zagnieżdżone, klasy są internal.
enum members are private by default, so to use them outside the enum we should declare them as public. Czy możesz wyjaśnić, dlaczego książka jest sprzeczna z tym, co mówisz? Dzięki.