Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 17614|Svar: 1

[Kommunikation] C# generiska exempel förklaras i detalj

[Kopiera länk]
Publicerad på 2019-01-28 16:03:40 | | | |
1. Vad är generiskt?

Generiska är ny syntax introducerad i C# 2.0, inte syntaxsocker, utan funktioner som tillhandahålls av ramverksuppgraderingar i 2.0.

När vi programmerar program stöter vi ofta på moduler med mycket liknande funktioner, men de hanterar olika data. Men vi har inget annat val än att skriva flera metoder separat för att hantera olika datatyper. Just nu är frågan om det finns ett sätt att använda samma metod för att hantera olika typer av parametrar? Framväxten av generika är specifikt utformad för att lösa detta problem.

2. Varför använda generiska läkemedel

Låt oss titta på följande exempel:
Utfall:

Från ovanstående resultat kan vi se att dessa tre metoder har samma funktioner förutom de olika parametrar de passerar. Vid tiden för version 1.0 fanns det inget koncept med generiska varianter, så vad skulle man göra. Jag tror att många kommer att tänka på ärftet av en av de tre huvudfunktionerna i OOP, vi vet att i C# är objektet basklassen av alla typer, och ovanstående kod är optimerad enligt följande:
Utfall:

Utifrån ovanstående resultat kan vi se att användningen av objekttypen uppfyller våra krav och löser kodens återanvändbarhet. Vissa kanske undrar varför det är möjligt att skicka in int, string, etc. när det definieras som en objekttyp? Det finns två anledningar:

1. Objekttypen är föräldraklassen för alla typer.

2. Genom arv har underklasser alla attribut och beteenden som föräldraklassen, och varhelst föräldraklassen förekommer kan den ersättas av underklasser.

Men ovanstående objekttypmetod medför ett annat problem: boxning och unboxing kan minska programmets prestanda.

Microsoft introducerade generiska i C# 2.0, vilket kan lösa ovanstående problem mycket väl.

3. Generiska typparametrar

I en definition av generisk typ eller metod är en typparameter en platshållare som specificeras av klienten för en specifik typ när den instansierar en variabel av den generiska typen. Den generiska klassen (GenericList<T>) kan inte användas som den är eftersom den inte är en sann typ; Det är mer som en ritning för typer. För att använda GenericList <T>måste klientkoden deklarera och instansiera en konstruktionstyp genom att specificera typparametern inom vinkelparenteser. Typargumentet för just denna klass kan vara vilken typ som helst som kompilatorn känner igen. Du kan skapa valfritt antal konstrukttypinstanser, var och en med olika typparameter.

Koden i exemplet ovan kan modifieras enligt följande:
Ring:
Resultat från programmet:






Föregående:.NET Core-filleverantörer
Nästa:MySQL-databasnamn, tabellnamn och fältnamnsfråga
Publicerad på 2019-01-29 04:08:13 |
Mycket bra, noggrann, och de grundläggande sakerna bör granskas mer
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com