base: Används för att möjliggöra åtkomst till offentliga eller skyddade medlemmar av basklassen i härledda klasser, men endast i konstruktörer, instansmetoder och instansegenskapsaccessorer. Specifika funktioner i sammanfattningen i MSDN inkluderar: (1) Anropa en metod som har skrivits över av andra metoder på basklassen. (2) Specificera basklasskonstruktören som ska anropas vid skapandet av en härledd klassinstans. bas används ofta för att kommunicera med basklassen när det härledda klassobjektet initieras. Basen kan få tillgång till offentliga och skyddade medlemmar av basklassen, och privata medlemmar är inte tillgängliga. Vid flerskiktsarv finns det två situationer där basen kan peka på föräldraklassen: först, när det sker en överbelastning, kommer basen att peka på metoden för den föräldraklassmedlem som ärver direkt; I avsaknad av överbelastning kan basen peka på en offentlig eller skyddad metod hos vilken förälder som helst.
this: Den nuvarande instansen som används för att referera till klassen, även ärvda metoder, kan vanligtvis dölja detta. Sammanfattningsfunktionerna i MSDN inkluderar huvudsakligen:
(1) Begränsa medlemmar som är dolda under liknande namn (2) Skicka objektet som parameter till andra metoder (3) Deklarationsindexer Detta avser själva klassobjektet, som används för att komma åt alla konstanter, fält, attribut och metodmedlemmar i klassen, oavsett åtkomstnivån för åtkomstelementet. Eftersom detta endast är begränsat till objektets insida och inte kan ses utanför objektet, är detta grundidén bakom detta. Dessutom är statiska medlemmar inte en del av objektet, så detta kan inte refereras i statiska metoder.
Allmänna regler:
1. Använd basen och detta så lite som möjligt. Förutom att undvika konflikter med underklassnamn och kalla andra konstruktörer i en konstruktör, kan användningen av bas och detta leda till oönskade resultat. 2. Användning av bas och detta i statiska medlemmar är inte tillåten. Anledningen är att basen och detta får tillgång till båda instanserna av klasser, dvs. objekt, medan statiska medlemmar endast kan nås av klasser, inte objekt. 3. Basen är utformad för att uppnå polymorfism. 4. Använd nyckelorden detta eller bas för att specificera endast en konstruktör, vilket innebär att denna och bas inte kan tillämpas på en konstruktör samtidigt. 5. Enkelt uttryckt används bas för att komma åt de omskrivna basklassmedlemmarna i den härledda klassen; Detta används förstås för att få tillgång till medlemmar i denna kategori, inklusive ärvt offentligt ägande och skyddade medlemmar. 6. Utöver basklassmedlemmar är ett annat sätt att komma åt basklassmedlemmar att konvertera den visade typen. Det är bara det att metoden inte kan vara statisk. |