W języku C# odniesienie do języka w MSDN definiuje "chroniony wewnętrzny" jako "Dostęp jest ograniczony do bieżącego zestawu lub typów pochodnych od klasy zawierającej". Ale z semantycznego punktu widzenia "chroniony wewnętrzny" brzmi dla mnie jak "chroniony i wewnętrzny", co oznacza, że członek będzie dostępny tylko dla tych klas pochodnych z tym samym zbiorem. Czy istnieje jakiś modyfikator dostępu, który ma znaczenie dla tego samego efektu?chronione wewnętrzne
Odpowiedz
C# nie ma żadnego takiego modyfikatora dostępu.
Jednak CLR obsługuje go, jako poziom dostępu FamANDAssem (protected internal
jest FamORAssem)
Zabezpieczony wewnętrzny jest obsługiwany w języku C#. Jest chroniona prywatna, dostępna tylko w C++. chroniony wewnętrzny to FamORAssem. chroniony prywatny to FamANDAssem. – BlackWasp
BlackWasp jest poprawny. C# obsługuje chronione wewnętrzne. Zobacz http://msdn.microsoft.com/en-us/library/ms173121(v=vs.110).aspx. – akton
@BlackWasp: Tak właśnie powiedziałem. – SLaks
Nie, nie ma takiego modyfikatora. Internal
powinno wystarczyć, ponieważ powinieneś być w stanie dowiedzieć się od innych typów tego samego zespołu, co jest legalne, a co nie.
Dzięki! ale próbuję do tego dojść, ponieważ nie jest możliwe zdefiniowanie elementu w taki sposób, aby był dostępny tylko dla klas pochodnych ORAZ w tym samym zespole. Chociaż nie mogę teraz pomyśleć o scenariuszu, w którym przydałby się taki modyfikator dostępu, dobrze jest wiedzieć, że nie ma takiego modyfikatora, który pozwoliłby programistom powiedzieć, że ten członek jest "zarówno chroniony, jak i wewnętrzny" – adfs
@adfs: Możliwość deklarowania metody jako 'internal' * i *' protected' byłaby lepsza niż 'internal' tylko w scenariuszu, w którym metoda powinna przyjmować parametr typu" protected "zagnieżdżonej klasy, szczególnie jeśli jest to chronione klasa miała członków typów wewnętrznych. – supercat
to zawsze podsłuch mnie zbyt .. Podobne pytanie: http://stackoverflow.com/questions/7000871/internal-protected -property-wciąż dostępny-od-różnych-montażu – nawfal