2014-11-07 19 views
5

W jaki sposób klasa pochodna może wywołać metodę z klasy bazowej.
Inne klasy nie powinny mieć dostępu z drugiej strony.
Wywołanie prywatnej metody bazowej z klasy pochodnej w C#

Moja sytuacja:
Mam klasy bazowej, w wich pisałem prywatną metodę rejestrowania pewnych wartości.

private void register(string param1, int param2){//...} 

Zrobiłem to, aby umożliwić podklasom rejestrowanie różnych rzeczy.
Problem polega na tym, że klasa pochodna nie może uzyskać dostępu do prywatnych metod lub pól klasy bazowej.
To ma dla mnie sens, ponieważ prywatny oznacza PRYWATNY.
Nie chcę, aby ta metoda była publiczna, ponieważ inne klasy nie powinny mieć możliwości wywoływania tej metody.
Czy ktoś może zaoferować rozwiązanie lub poprowadzić mnie do lepszego projektu?

+11

sprawiają, że 'protected'? – AlexD

+0

Och, człowieku! Zawsze uważałem, że ochrona uniemożliwiłaby dostęp do innych pakietów. (To jest w Javie tylko myślę ...) Napisz to jako odpowiedź, a ja to zaakceptuję. : D –

+1

Nie, to jest 'internal', można nawet połączyć dwa -' protected internal', który umożliwia dostęp z klas pochodnych i dowolnej klasy w tym samym zespole. –

Odpowiedz

14

Kiedy deklarujesz coś prywatnego, dostęp do niego może mieć tylko klasa, która go definiuje. Nawet pochodzi klas

Co trzeba to protected

Kiedy coś jest zadeklarowana jako protected można uzyskać dowolną klasie pochodnej pozostając ukryte przed innymi niepowiązanych klas

Powiązane problemy