C# Generiske
Generisk betyr at den generelle formen, ikke bestemt. I C#, generisk betyr ikke spesifikke for en bestemt datatype.
C# kan du definere generiske klasser, grensesnitt, abstrakte klasser, felt,metoder, statiske metoder, egenskaper, hendelser, delegater, og operatører ved hjelp av parameter og uten bestemt datatype. En parameter er en plassholder for en bestemt type er angitt når du oppretter en forekomst av den generisk type.
En generisk type er deklarert ved å angi en parameter i en vinkel parentes etter navnet, f.eks., TypeName<T>
der T
er en parameter.
Generisk Klasse
Generiske klasser defineres ved hjelp av en parameter i en vinkel parentes etter klasse navn. Følgende definerer en generisk klasse.
Over, DataStore
er det en generisk klasse., T
kalles parameter, som kan brukes som en type felt, egenskaper, metode parametre, kan du gå tilbake typer, og delegater i DataStore
klasse. For eksempel, Data
er generisk eiendom fordi vi har brukt en parameter T
som sin type i stedet for den spesifikke data type.
T
som en parameter. Du kan gi navn til en parameter., Generelt, T
brukes når det er bare en parameter. Det anbefales å bruke en mer lesbar parameter navn som per kravet som TSession
, TKey
, TValue
osv. Les mer om Parameter Retningslinjer for Navngiving Du kan også definere flere type parametre, atskilt med et komma.
å starte Generisk Klasse
Du kan opprette en forekomst av generiske klasser ved å angi en faktisk skriver i vinkelparenteser., Følgende oppretter en forekomst av den generiske klassen DataStore
.
Over, vi er angitt string
skriv i vinkelparenteser mens du oppretter en forekomst. Så, T
vil bli erstattet med en string
skriv uansett hvor T
brukes i hele klassen på compile-time. Derfor, type Data
eiendommen ville være en string
.
følgende figur illustrerer hvordan er generiske fungerer.,
Du kan tilordne et string-verdi Data
eiendom. Prøver å tilordne verdier annet enn string vil resultere i en compile-time feil.
Du kan angi ulike typer data, for forskjellige objekter, som vist nedenfor.
Generisk Klasse Egenskaper
- En generisk klasse øker reusability. Mer type parametre betyr flere gjenbrukbare det blir., Men for mye generalisering gjør koden vanskelig å forstå og vedlikeholde.
- En generisk klasse kan være en base klasse til andre generiske eller ikke-generiske klasser eller abstrakte klasser.
- En generisk klasse kan være avledet fra andre generiske eller ikke-generisk grensesnitt, klasser eller abstrakte klasser.
Generisk Felt
En generisk klasse kan inneholde generisk felt. Men, det kan ikke initialiseres.
følgende erklærer en generisk utvalg.,
Generiske Metoder
En metode erklærte med type-parametre for retur-type eller parametere kalles en generisk metode.
Over, AddorUpdate()
og GetData()
metoder er generiske metoder. Den faktiske data type item
parameter vil være spesifisert på tidspunktet for å starte DataStore<T>
– klassen, som vist nedenfor.,
Den generisk parameter type kan brukes med flere parametere med eller uten ikke-generiske parametre og returnere type. Followings er gyldig generisk metode overbelastning.
Et ikke-generisk klasse kan inneholde generiske metoder ved å angi en parameter i vinkelparenteser med metoden navn, som vist nedenfor.
Fordeler av Generiske
- Generiske øke reusability av koden. Du don t trenger å skrive kode for å håndtere ulike typer data.
- Generiske type-safe., Du får compile-time feil hvis du prøver å bruke en annen data type enn den som er angitt i definisjonen.
- Generisk har en ytelse fordel fordi det fjerner mulighetene for boksing og unboxing.