Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 17614|Odpověď: 1

[Komunikace] Obecné příklady v C# jsou podrobně vysvětleny

[Kopírovat odkaz]
Zveřejněno 28.01.2019 16:03:40 | | | |
1. Co je obecné?

Generické jsou nová syntax zavedená v C# 2.0, ne syntax sugar, ale funkce poskytované vylepšeními frameworku ve verzi 2.0.

Když programujeme programy, často narazíme na moduly s velmi podobnými funkcemi, ale zpracovávají odlišná data. Ale nemáme jinou možnost než napsat více metod samostatně, abychom zvládli různé datové typy. V tuto chvíli je otázka, zda existuje způsob, jak použít stejnou metodu pro různé typy parametrů? Vznik generik je speciálně navržen k řešení tohoto problému.

2. Proč používat generika

Podívejme se na následující příklad:
Výsledek:

Z výše uvedených výsledků vidíme, že tyto tři metody mají stejné funkce kromě různých parametrů, které přecházejí. V době verze 1.0 ještě neexistoval koncept generik, tak co dělat. Věřím, že mnoho lidí si vzpomene na dědičnost jedné ze tří hlavních vlastností OOP, víme, že v C# je objekt základní třídou všech typů a výše uvedený kód je optimalizován následovně:
Výsledek:

Z výše uvedených výsledků vidíme, že použití typu Object splňuje naše požadavky a řeší znovupoužitelnost kódu. Někteří lidé se mohou ptát, proč je možné předávat int, řetězec atd., když je definován jako typ objektu? Existují dva důvody:

1. Typ objektu je třídou rodičů všech typů.

2. Díky dědičnosti mají podtřídy všechny atributy a chování rodičovské třídy a kdekoliv se rodičovská třída objeví, může být nahrazena podtřídami.

Ale výše uvedená metoda typu objektu přináší další problém: boxování a rozbalování mohou snížit výkon programu.

Microsoft představil generické generika v C# 2.0, které mohou tyto problémy velmi dobře vyřešit.

3. Obecné typové parametry

V definici obecného typu nebo metody je parametr typu zástupný parametr určený klientem pro konkrétní typ, když instancuje proměnnou tohoto generického typu. Generická třída (GenericList<T>) nemůže být použita tak, jak je, protože není pravdivým typem; Je to spíš plán pro typy. Pro použití GenericList <T>musí klientský kód deklarovat a instancovat typ konstruktu tím, že parametr typu zadá v úhlových závorkách. Typový argument pro tuto konkrétní třídu může být jakýkoli typ, který kompilátor rozpozná. Můžete vytvořit libovolný počet instancí typu konstruktů, z nichž každá má jiný typ parametr.

Kód v uvedeném příkladu lze upravit následovně:
Výzva:
Zobrazit výsledky:






Předchozí:Poskytovatelé souborů .NET Core
Další:Dotaz na název databáze MySQL, název tabulky a dotaz na název pole
Zveřejněno 29.01.2019 4:08:13 |
Velmi dobré, pečlivé a základní věci by měly být více prozkoumány
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com