/ / Java2C # translation: metody publiczne w interfejsach w języku C # - c #, java, tłumaczenie, metoda publiczna

Tłumaczenie Java2C #: publiczne metody w interfejsach w języku C # - c #, java, tłumaczenie, public-method

Kolejne pytanie dotyczące tłumaczenia, może być bardziej teoretyczne, ale jestem ciekawy wyboru projektu. SFNQ:

Dlaczego C # nie pozwala na kontrolowanie kontroli dostępu do metod w interfejsach, takich jak Java? Na przykład w interfejsie C #:

   public void Visit(Axiom axiom);

Dziękuję Ci.

Odpowiedzi:

5 dla odpowiedzi № 1

Zarówno w języku C #, jak i Javie wszystkie metody interfejsu są publiczne.

W Javie dozwolone jest publiczne słowo kluczowe, które może zaoszczędzić na regułach parsowania. W języku C # publiczne słowo kluczowe zostało uznane za zbędne i zostało całkowicie usunięte z deklaracji interfejsu.


6 dla odpowiedzi nr 2

W języku C # i .Net ogólnie wszystkie metody interfejsu są domyślnie publiczne. Nie ma możliwości ograniczenia ich dostępu.

Zastanów się nad alternatywą, co by to oznaczałomasz chronionego członka w interfejsie? Jak ustanowiłbyś reguły dostępu, aby zezwolić lub zabronić dzwoniącemu dostępu do interfejsu dla konkretnej metody? (Mam na myśli ochronę w sensie C #, a nie Java).

Nawet lepiej, co oznaczałoby prywatność?


4 dla odpowiedzi nr 3

W języku C # wszyscy członkowie interfejsu muszą być publiczni,dlatego nie będzie można dodawać żadnych modyfikatorów widoczności do deklaracji członkowskich. Publiczne słowo kluczowe jest zatem zbędne i nie jest potrzebne (w rzeczywistości, jeśli je uwzględnisz, pojawi się błąd kompilatora).

Interfejs to umowa, w której stwierdza się, że użytkownikzapewni wszystkie funkcje określone w definicji interfejsu. Jeśli pozwolono ci mieć prywatnych członków w interfejsie, nie ujawniałbyś tej funkcjonalności (a zatem naruszyłbyś umowę).