base: Naudojamas norint suteikti prieigą prie viešų arba apsaugotų bazinės klasės narių išvestinėse klasėse, bet tik konstruktoriuose, egzempliorių metoduose ir egzempliorių ypatybių prieigos priemonėse. Specifinės MSDN suvestinės funkcijos: (1) Iškviesti metodą, kuris buvo perrašytas kitais bazinės klasės metodais. (2) Nurodykite bazinės klasės konstruktorių, kuris turėtų būti iškviestas kuriant išvestinės klasės egzempliorių. Bazė dažniausiai naudojama bendrauti su bazine klase, kai inicijuojamas išvestinės klasės objektas. Bazė gali pasiekti viešuosius ir apsaugotus bazinės klasės narius, o privatūs nariai nepasiekiami. Daugiasluoksniame paveldėjime yra dvi situacijos, kai bazė gali nurodyti pirminę klasę: pirma, kai yra perkrova, bazė nurodys pirminės klasės nario, kuris tiesiogiai paveldi, metodą; Jei nėra perkrovos, bazė gali nurodyti viešą ar saugomą bet kurio tėvo iš tėvų metodą.
this: Dabartinis egzempliorius, naudojamas klasei nurodyti, taip pat paveldėti metodai, paprastai gali tai paslėpti. MSDN suvestinės funkcijos daugiausia apima:
(1) Apriboti narius, kurie yra paslėpti panašiais vardais (2) Perduoti objektą kaip parametrą kitiems metodams (3) Deklaracijų indeksavimo priemonė Tai reiškia patį klasės objektą, kuris naudojamas prieigai prie visų klasės konstantų, laukų, atributų ir metodo narių, neatsižvelgiant į prieigos elemento prieigos lygį. Kadangi tai apsiriboja tik objekto viduje ir negali būti matoma už objekto ribų, tai yra pagrindinė idėja. Be to, statiniai nariai nėra objekto dalis, todėl statiniuose metoduose to negalima nurodyti.
Bendrosios taisyklės:
1. Naudokite pagrindą ir tai kuo mažiau. Be to, kad išvengiama poklasio pavadinimų konfliktų ir kitų konstruktorių iškvietimo į vieną konstruktorių, bazės naudojimas ir tai gali sukelti nepageidaujamų rezultatų. 2. Neleidžiama naudoti pagrindo ir tai statiniuose elementuose. Priežastis ta, kad bazė ir ši prieiga prie abiejų klasių egzempliorių, t.y. objektų, o statiniai nariai gali būti pasiekiami tik klasėmis, o ne objektais. 3. Pagrindas skirtas polimorfizmui pasiekti. 4. Naudokite raktinius žodžius this arba base, kad nurodytumėte tik vieną konstruktorių, o tai reiškia, kad šis ir bazė negali būti taikomi konstruktoriui vienu metu. 5. Paprastai tariant, bazė naudojama prieigai prie perrašytų išvestinės klasės bazinės klasės narių; Žinoma, tai naudojama prieigai prie šios kategorijos narių, įskaitant paveldėtą viešąją nuosavybę ir saugomus narius. 6. Be bazės, kitas būdas pasiekti bazinės klasės narius yra konvertuoti rodomą tipą. Tiesiog metodas negali būti statiškas. |