c type casting explicit implicit data conversion with example
Prenášanie dátových typov v C # s príkladmi: Tento výukový program vysvetľuje explicitnú a implicitnú konverziu, prevod na reťazcový a dátový typ konverzie pomocou tried pomocníka:
Dátové typy a premenné v C # boli podrobne vysvetlené v našom predchádzajúcom návode.
Dozvedeli sme sa, ako je možné pomocou prenosu typov jeden dátový typ previesť na iný dátový typ. Typové obsadenie je rozdelené na dve časti, tj. Implicitnú a explicitnú konverziu.
Poďme sa v tomto návode hlbšie venovať castingu typu C #.
ako napísať testovacie prípady pre webovú aplikáciu s príkladom
=> Sprievodcu jednoduchým C # výcvikom nájdete tu
Je to implicitná konverzia, keď sa menší dátový typ prevedie na väčší dátový typ alebo odvodená trieda do základnej triedy.
Na druhej strane je konverzia v opačnom smere známa ako explicitná konverzia. Potrebuje operátor obsadenia, aby previedol vyšší dátový typ na menší dátový typ. Tento typ konverzie nie je typovo bezpečný a môže mať za následok stratu údajov.
Čo sa dozviete:
Casting dátových typov v C #
V tomto výučbe sa budeme podrobne zaoberať tým, ako je možné jeden typ údajov previesť na iný údajový typ. C # je počas kompilácie statický typ, čo znamená, že po deklarácii premennej ho nemožno použiť na ukladanie hodnôt iného dátového typu.
To sa však dá prekonať prevedením tohto typu na premenný.
Skúsme previesť hodnotu reťazca na celé číslo.
int a; a = 'some random string';
Ak to skompilujeme, spôsobí to chybu s konštatovaním, že „Nie je možné implicitne previesť typ„ string “na„ int “.“
Dátové typy je možné ďalej rozdeliť na základe dátových typov.
- Primitívne
- Nie primitívne
Primitívne dátové typy sú vopred definované, zatiaľ čo neprimitívne typy údajov sú definované používateľom. Dátové typy ako byte, int, short, float, long, char, bool atď. Sa nazývajú primitívne dátové typy. Neprimitívne dátové typy zahrnúť triedu, výčet, pole, delegáta atď.
V tomto tutoriále sa pozrieme na rôzne metódy, ktoré ponúka C # pre obsadenie.
Implicitná konverzia
Implicitná konverzia je najjednoduchší typ konverzie. Tento typ konverzie je typovo bezpečný a počas konverzie nedochádza k strate údajov. Tieto konverzie sa zaoberajú konverziou odvodenej triedy na základnú.
implementácia binárneho vyhľadávacieho stromu c ++
Napríklad, môžeme priamo použiť implicitnú konverziu, ak sa hodnota, ktorá musí byť uložená v inej premennej, zmestí priamo bez straty dát. Povedzme, že máme hodnotu „celé číslo“ a chceme túto hodnotu odovzdať hodnote „dlhý“.
int i = 75; long j = i;
Explicitná konverzia
Pri implicitnej konverzii sme videli, že môžeme priamo konvertovať odvodenú triedu na základnú triedu bez straty akýchkoľvek údajov, ale v prípade, že existuje šanca na stratu údajov, bude kompilátor vyžadovať vykonanie explicitnej konverzie.
Explicitná konverzia alebo prenos je proces odovzdávania informácií kompilátoru, ktorý sa program pokúša vykonať konverziu s vedomím možnej straty údajov.
Napríklad, ak prevádzame vyššiu číselnú hodnotu na nižšiu.
double d = 75.25; int i; i = (int)d;
Teraz, ak vytlačíte „i“, zistíte, že sa vytlačí „75“. Pri prepočte sa stratia všetky údaje za desatinnou čiarkou.
Konverzia pomocou rôznych tried pomocníka
Ak chcete prevádzať medzi rôznymi nekompatibilnými typmi, ako je napríklad prevod reťazca na číslo alebo bajtové pole na celé číslo alebo dokonca hexadecimálne reťazce na iné numerické typy, potrebujeme inú pomocnú triedu, pretože priama konverzia nie je možná.
Dátový typ je možné previesť na iný dátový typ pomocou metód prítomných v triede prevodu alebo pomocou metódy TryParse, ktorá je k dispozícii pre rôzne typy číslic. TryParse je užitočnejšie, ak prevádzame reťazec na číslicu. Je to celkom jednoduché a efektívne.
int number = Int32.Parse(“123”);
Tu sme pomocou parsovania konvertovali reťazec na celé číslo.
Pozrime sa na inú metódu konverzie, ktorou je metóda Convert.
Statické metódy prítomné vo vnútri systému Premeniť triedu sú celkom užitočné pri prevode na základný dátový typ alebo naopak. Niektoré z podporovaných dátových typov sú Char, Boolean, Int32, int64, Double, Decimal, String, Int16 atď. Trieda Convert podporuje aj metódy pre ďalšie konverzie.
Prevod na reťazec
Metóda Convert.ToString prevádza dátový typ na reťazec. V príklad nižšie prevádzame celočíselný údajový typ na reťazcový údajový typ.
int number = 75; string s = Convert.ToString(number);
InvalidCastException
Niekedy je možné, že kompilátor nemusí pochopiť, či je operácia vykonaná na prevod jedného typu na iný platná alebo nie. To spôsobí, že kompilátor počas behu zlyhá. Akonáhle zlyhá prevod typu, vyvolá neplatnú výnimku.
InvalidCastException sa vyvolá vždy, keď obidva dátové typy použité na prevod nepodporujú implementáciu explicitnej alebo typovej konverzie.
Záver
V tomto tutoriáli sme sa naučili typy konverzie a ako vykonať konverziu medzi rôznymi dátovými typmi. Implicitná konverzia je konverzia, pri ktorej sa odvodená trieda prevádza na základnú triedu ako int na floatový typ.
najlepší firewall pre Windows 7 64 bit
Explicitná konverzia je konverzia, ktorá môže spôsobiť stratu údajov. Explicitná konverzia prevádza základnú triedu na odvodenú triedu. Možno budeme musieť vykonať konverziu na rôznych iných typoch údajov, aby sme to mohli urobiť, aby sme pomohli triede pomocníka. Trieda pomocníka ako „Parse“ a „ConvertTo“ ponúka rôzne spôsoby prevodu jedného dátového typu na druhý.
Dozvedeli sme sa tiež o výnimke, ktorú kompilátor vyvolá, ak nechápe konverziu medzi dvoma typmi.
=> Sprievodcu jednoduchým C # výcvikom nájdete tu
Odporúčané čítanie
- C # dátové typy a premenné s príkladmi
- Dátové typy C ++
- Konverzie typu v C ++
- Ťažba dát: Proces, techniky a hlavné problémy v analýze dát
- Výukový program Data Mart - Typy, príklady a implementácia Data Mart
- Typy testovania migrácie: S testovacími scenármi pre každý typ
- 10+ najlepších nástrojov na zber údajov so stratégiami zhromažďovania údajov
- Funkcia údajového fondu v IBM Rational Quality Manager pre správu testovacích údajov