Innholdsfortegnelse:
Definisjon - Hva betyr klassemedlemmer?
Klassemedlemmer, i C #, er medlemmene i en klasse som representerer dataene og oppførselen til en klasse.
Klassemedlemmer er medlemmer som er erklært i klassen, og alle de (unntatt konstruktører og destruktører) erklært i alle klasser i arv hierarkiet.
Klassemedlemmer kan være av følgende typer:
- Konstanter som representerer konstante verdier
- Felt som representerer variabler
- Metoder som leverer tjenester som beregning eller andre handlinger på medlemmene
- Egenskaper som definerer klassefunksjonene og inkluderer handlinger for å hente og endre dem
- Hendelser generert for å kommunisere mellom forskjellige klasser / objekter
- Indeksere som hjelper deg med å få tilgang til klasseforekomster som ligner på matriser
- Operatører som definerer semantikk når de brukes i uttrykk med klasseforekomster
- Forekomstkonstruktører for å initialisere medlemmer av klasseforekomster
- Statisk konstruktør for å initialisere klassen
- Destruktører for å utføre handlinger som er nødvendige for å bli utført før klasseinstanser blir kastet
- Typer som er lokale for klassen (nestet type)
Klassemedlemmer kan spesifiseres individuelt med en av følgende tilgjengeligheter:
- Offentlig - tilgjengelig med hvilken som helst kode i nåværende eller ekstern montering
- Beskyttet - tilgjengelighet i samme klasse eller den avledede klassen
- Privat - tilgjengelighet i samme klasse
- intern – tilgjengelighet innen nåværende montering
- beskyttet intern –tilgjengelighet innen nåværende montering eller klasser hentet fra inneholdende klasse
I motsetning til Java der standard tilgjengelighetsnivå for et klassemedlem er offentlig, er det privat i C #.
Techopedia forklarer klassens medlemmer
Klassemedlemmer initialiseres i konstruktører som kan overbelastes med forskjellige signaturer. For klasser som ikke har konstruktør, genereres en standardkonstruktør som initialiserer klassemedlemmene (til standardverdier).
I motsetning til i C ++, tillater C # en klasse å arve fra en baseklasse. Imidlertid kan en klasse stamme fra flere grensesnitt, men alle grensesnittmedlemmene må implementeres. Disse medlemmene av klassen som implementerer grensesnitt (er) har offentlig synlighet som standard og kan ikke ha andre tilgangsmodifiserere.
Alle medlemmene i baseklassen unntatt konstruktører er arvet i avledet klasse. Avledede klassemedlemmer kan skjule baseklassemedlemmet som 'nytt' nøkkelord må brukes for å indikere at basemedlem ikke blir overstyrt og unngå kompilasjonsadvarsler.
Et statisk klassemedlem er medlem av statisk klasse (som ikke kan formidles eller arves) som bare kan få tilgang til ved å bruke klassens navn. I motsetning til forekomstmedlem, har den en kopi av det statiske elementet som initialiseres før det åpnes for første gang og før dets statiske konstruktør (hvis noen).
Medlemmer av abstrakt klasse forhindrer direkte øyeblikkelighet og må implementeres i avledet klasse for at den skal kunne brukes. For å forhindre at en klasse eller klassemedlemmer arver, kan klassen eller dens medlemmer erklæres som 'forseglet'. Klassemedlemmer kan brukes som "kompileringstidskonstant" ved bruk av "const" -modifiserer og som runtime-konstanter ved bruk av "readonly" -modifikator.
Når du erklærer klassemedlemmer i et nytt erklæringsrom, gjelder følgende regler:
- Bortsett fra konstruktører og destruktører, trenger alle de andre medlemmene å ha et annet navn enn klassens navn
- Navn på konstant, felt, eiendom, hendelse eller type må være unike i klassen
- Flere metoder kan deklareres med samme navn, men bør avvike i signatur
- Indikatorens og operatørens underskrift må være unik blant deklarerte i klassen
- Klassemedlem kan ikke ha reservert signaturer som er medlemsnavn forbeholdt egenskaper, hendelser, indekser og 'Avslutt'
- Type medlem, parameter og returverdi for en metode, delegat eller indekser skal være tilgjengelig som medlemmet selv
- Brukerdefinerte operatører må ha tilgjengelighetsnivå som offentlig
