Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 17614|Antwoord: 1

[Communicatie] C# generieke voorbeelden worden in detail uitgelegd

[Link kopiëren]
Geplaatst op 28-01-2019 16:03:40 | | | |
1. Wat is generiek?

Generieke zijn nieuwe syntaxis geïntroduceerd in C# 2.0, niet syntaxissuiker, maar functies die worden geleverd door framework-upgrades in 2.0.

Wanneer we programma's programmeren, komen we vaak modules tegen met zeer vergelijkbare functies, maar ze verwerken verschillende data. Maar we hebben geen andere keuze dan meerdere methoden apart te schrijven om verschillende datatypes te verwerken. Op dit moment is de vraag: is er een manier om dezelfde methode te gebruiken om met verschillende soorten parameters om te gaan? De opkomst van generieke middelen is specifiek ontworpen om dit probleem op te lossen.

2. Waarom generieke middelen gebruiken

Laten we het volgende voorbeeld bekijken:
Resultaat:

Uit bovenstaande resultaten kunnen we zien dat deze drie methoden dezelfde functies hebben, behalve de verschillende parameters die ze passeren. Ten tijde van versie 1.0 bestond er geen concept van generieke producten, dus wat moest je doen. Ik geloof dat veel mensen zullen denken aan de overerving van een van de drie belangrijkste kenmerken van OOP; we weten dat in C# het object de basisklasse van alle typen is, en de bovenstaande code is als volgt geoptimaliseerd:
Resultaat:

Uit bovenstaande resultaten blijkt dat het gebruik van het Object-type aan onze eisen voldoet en de herbruikbaarheid van de code oplost. Sommige mensen vragen zich misschien af waarom het mogelijk is om int, string, enzovoort door te geven terwijl het als objecttype is gedefinieerd? Er zijn twee redenen:

1. Het objecttype is de ouderklasse van alle typen.

2. Door overerving hebben subklassen alle attributen en gedragingen van de ouderklasse, en waar de ouderklasse voorkomt, kan deze worden vervangen door subklassen.

Maar de bovenstaande objecttype-methode brengt een ander probleem met zich mee: boxen en unboxen kunnen de prestaties van het programma verminderen.

Microsoft introduceerde generieke exemplaren in C# 2.0, die bovenstaande problemen zeer goed kunnen oplossen.

3. Generieke typeparameters

In een generieke type- of methodedefinitie is een typeparameter een tijdelijke aanduiding die door de client wordt gespecificeerd voor een specifiek type wanneer deze een variabele van het generieke type instantieert. De generieke klasse (GenericList<T>) kan niet worden gebruikt zoals het is omdat het geen echt type is; Het is meer een blauwdruk voor types. Om GenericList te gebruiken<T>, moet clientcode een constructtype declareren en instansiëren door de typeparameter binnen hoekhaken te specificeren. Het typeargument voor deze specifieke klasse kan elk type zijn dat de compiler herkent. Je kunt een willeloos aantal constructtype-instanties maken, elk met een andere typeparameter.

De code in het bovenstaande voorbeeld kan als volgt worden aangepast:
Call:
Resultaten van de show:






Vorig:.NET Core Bestandsproviders
Volgend:MySQL-databasenaam, tabelnaam en veldnaam-query
Geplaatst op 29-01-2019 04:08:13 |
Heel goed, nauwkeurig, en de basiszaken moeten nader worden bekeken
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com