C # Generics (Svenska)

0 Comments

Generic betyder den allmänna formen, inte specifik. I C# betyder Generisk inte specifik för en viss datatyp.

c# låter dig definiera generiska klasser, gränssnitt, abstrakta klasser,fält, metoder, statiska metoder, egenskaper, händelser, delegater och operatörer som använder typparametern och utan den specifika datatypen. En typparameter är en platshållare för en viss typ som anges när du skapar en instans av den generiska typen.

en generisk typ deklareras genom att ange en typparameter i en vinkelfäste efter ett typnamn, t. ex., TypeName<T> därT är en typparameter.

Generisk klass

generiska klasser definieras med en typparameter i en vinkelfäste efter klassnamnet. Följande definierar en generisk klass.

exempel: definiera Generisk klass

ovan ärDataStore en generisk klass., Tkallas typparameter, som kan användas som en typ av fält, egenskaper, metodparametrar, returtyper och delegater i klassen DataStore. Till exempel är Data Generisk egenskap eftersom vi har använt en typparameter T som dess typ istället för den specifika datatypen.

Obs
det är inte nödvändigt att användaT som en typparameter. Du kan ge något namn till en typparameter., I allmänhet användsT när det bara finns en typparameter. Det rekommenderas att använda ett mer läsbart parameternamn enligt krav som TSession, TKey, TValue etc. Läs mer om riktlinjer för Typparameternamn

Du kan också definiera flera typparametrar åtskilda av ett kommatecken.

Instantiating Generic Class

Du kan skapa en instans av generiska klasser genom att ange en faktisk typ i vinkelfästen., Följande skapar en instans av den generiska klassen DataStore.

ovan angav vi typenstring I vinkelfästena medan du skapade en instans. Så kommerT att ersättas med enstring skriv varhelstT används i hela klassen vid kompilering. Därför skulle typen av Data egenskap vara en string.

följande figur visar hur generika fungerar.,

Du kan tilldela ett strängvärde till egenskapenData. Att försöka tilldela andra värden än sträng resulterar i ett kompileringsfel.

Du kan ange olika datatyper för olika objekt, som visas nedan.

annons

generiska klassegenskaper

  • en generisk klass ökar återanvändbarheten. Ju fler typparametrar betyder mer återanvändbar blir det., Men för mycket generalisering gör koden svår att förstå och underhålla.
  • en generisk klass kan vara en basklass till andra generiska eller icke-generiska klasser eller abstrakta klasser.
  • en generisk klass kan härledas från andra generiska eller icke-generiska gränssnitt, klasser eller abstrakta klasser.

generiska fält

en generisk klass kan innehålla generiska fält. Det kan dock inte initieras.

exempel: generiskt fält

följande deklarerar en generisk array.,

exempel: Generisk Array

generiska metoder

en metod som deklareras med typparametrarna för dess returtyp eller parametrar kallas en generisk metod.

ovan är metodernaAddorUpdate() och metodernaGetData() generiska. Den faktiska datatypen för parametern itemkommer att anges när DataStore<T> instanseras enligt nedan.,

den generiska parametertypen kan användas med flera parametrar med eller utan icke-generiska parametrar och returtyp. Följande är giltiga generiska metoden överbelastning.

en icke-generisk klass kan inkludera generiska metoder genom att ange en typparameter i vinkelfästen med metodnamnet, som visas nedan.

fördelar med generika

  1. generika ökar återanvändbarheten av koden. Du behöver inte skriva kod för att hantera olika datatyper.
  2. generika är typsäkra., Du får kompileringsfel om du försöker använda en annan datatyp än den som anges i definitionen.
  3. Generic har en prestationsfördel eftersom det tar bort möjligheterna att boxning och unboxing.


Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *