base: Brukes for å muliggjøre tilgang til offentlige eller beskyttede medlemmer av baseklassen i avledede klasser, men kun i konstruktører, instansmetoder og instans-attributt-accessorer. Spesifikke trekk ved sammendraget i MSDN inkluderer: (1) Kalle en metode som er overskrevet av andre metoder på basisklassen. (2) Spesifiser baseklassekonstruktøren som skal kalles når man oppretter en avledet klasseinstans. base brukes ofte til å kommunisere med base-klassen når det avledede klasseobjektet initialiseres. basen kan få tilgang til offentlige og beskyttede medlemmer av basisklassen, mens private medlemmer ikke er tilgjengelige. I flerlags arv finnes det to situasjoner hvor base kan peke på foreldreklassen: først, når det er overbelastning, vil base peke på metoden til foreldreklasse-medlemmet som arver direkte; I fravær av overbelastning kan basen peke på en offentlig eller beskyttet metode hos en hvilken som helst forelder.
this: Den nåværende instansen som brukes til å referere til klassen, også arvede metoder, kan vanligvis skjule dette. Sammendragsfunksjonene i MSDN inkluderer hovedsakelig følgende:
(1) Begrens medlemmer som er skjult under lignende navn (2) Send objektet som parameter til andre metoder (3) Deklarasjonsindekser Dette refererer til selve klasseobjektet, som brukes til å få tilgang til alle konstanter, felt, attributter og metodemedlemmer i klassen, uavhengig av tilgangsnivået til tilgangselementet. Siden dette kun er begrenset til innsiden av objektet, og ikke kan sees utenfor objektet, er dette grunnideen bak dette. I tillegg er statiske elementer ikke en del av objektet, så dette kan ikke refereres til i statiske metoder.
Generelle regler:
1. Bruk base og dette så lite som mulig. I tillegg til å unngå underklassenavnekonflikter og kalle andre konstruktører i én konstruktør, kan bruk av base og dette føre til uønskede resultater. 2. Bruk av base og dette i statiske medlemmer er ikke tillatt. Årsaken er at base og dette gir tilgang til begge instansene av klasser, altså objekter, mens statiske medlemmer kun kan nås av klasser, ikke objekter. 3. Basen er designet for å oppnå polymorfisme. 4. Bruk nøkkelordene this eller base for å spesifisere kun én konstruktør, noe som betyr at denne og base ikke kan brukes på en konstruktør samtidig. 5. Enkelt sagt brukes base for å få tilgang til de omskrevne baseklassemedlemmene i den avledede klassen; Dette brukes selvfølgelig for å få tilgang til medlemmer av denne kategorien, inkludert arvet offentlig eierskap og beskyttede medlemmer. 6. I tillegg til base er en annen måte å få tilgang til base class-medlemmer på å konvertere den viste typen. Det er bare det at metoden ikke kan være statisk. |