c type casting explicit implicit data conversion with example
Casting datových typů v C # s příklady: Tento výukový program vysvětluje explicitní a implicitní převod, převod na řetězec a převod datového typu pomocí tříd pomocníka:
Datové typy a proměnné v C # byly podrobně vysvětleny v našem předchozím tutoriálu.
Zjistili jsme, jak lze jeden datový typ převést na jiný datový typ pomocí odlévání typů. Typecasting je rozdělen do dvou částí, tj. Implicitní a explicitní konverze.
Pojďme se v tomto kurzu hlouběji zabývat Casting Type C #.
=> Snadného průvodce C # najdete zde
Je to implicitní převod, když je menší datový typ převeden na větší datový typ nebo odvozenou třídu do základní třídy.
Na druhou stranu je převod v opačném směru známý jako explicitní převod. K převodu vyššího datového typu na menší datový typ potřebuje operátor přetypování. Tento typ převodu není typově bezpečný a může mít za následek ztrátu dat.
Co se naučíte:
Casting datových typů v C #
V tomto kurzu podrobně probereme, jak lze jeden typ dat převést na jiný datový typ. C # je statický typ během kompilace, což znamená, že po deklaraci proměnné ji nelze použít k ukládání hodnot jakéhokoli jiného datového typu.
To však lze překonat převedením tohoto typu na proměnný typ.
Zkusme převést hodnotu řetězce na celé číslo.
int a; a = 'some random string';
Pokud to zkompilujeme, vyvolá to chybu, že „Nelze implicitně převést typ„ řetězec “na„ int “.“
sloučit řazení c ++ rekurzivní
Datové typy lze dále rozdělit na základě datových typů.
- Primitivní
- Neprimitivní
Primitivní datové typy jsou předdefinovány, zatímco neprimitivní datové typy jsou definovány uživatelem. Datové typy jako byte, int, short, float, long, char, bool atd. Se nazývají primitivní datové typy. Neprimitivní datové typy zahrnout třídu, výčet, pole, delegáta atd.
V tomto kurzu se podíváme na různé metody, které nabízí C # pro vysílání.
Implicitní převod
Implicitní převod je nejjednodušší typ převodu. Tento typ převodu je typově bezpečný a během převodu nedojde ke ztrátě dat. Tyto převody se zabývají převodem odvozené třídy na základní třídu.
Například, můžeme přímo použít implicitní převod, pokud se hodnota, která musí být uložena v jiné proměnné, vejde přímo bez ztráty dat. Řekněme, že máme „celé číslo“ a chceme tuto hodnotu předat „dlouhé“.
int i = 75; long j = i;
Explicitní převod
V implicitní konverzi jsme viděli, že můžeme přímo převést odvozenou třídu na základní třídu bez ztráty dat, ale v případě, že existuje šance na ztrátu dat, bude kompilátor vyžadovat provedení explicitní konverze.
Explicitní převod nebo přetypování je proces předávání informací kompilátoru, který se program pokouší provést převod se znalostí možné ztráty dat.
Například, pokud převádíme vyšší číselnou hodnotu na nižší.
double d = 75.25; int i; i = (int)d;
Nyní, pokud vytisknete „i“, zjistíte, že se vytiskne „75“. Při převodu budou ztracena všechna data za desetinnou čárkou.
Konverze pomocí různých tříd pomocníků
Chcete-li převést mezi různými nekompatibilními typy, jako je převod řetězce na číslo nebo bajtové pole na celé číslo nebo dokonce hexadecimální řetězce na jiné číselné typy, potřebujeme jinou pomocnou třídu, protože přímý převod není možný.
Datový typ lze převést na jiný datový typ pomocí metod přítomných ve třídě převodu nebo pomocí metody TryParse, která je k dispozici pro různé typy číslic. TryParse je užitečnější, když převádíme řetězec na číslici. Je to docela jednoduché a efektivní.
int number = Int32.Parse(“123”);
Zde jsme převedli řetězec na celé číslo pomocí analýzy.
Podívejme se na jinou metodu převodu, kterou je metoda převodu.
Statické metody přítomné uvnitř Převést třídu jsou docela užitečné pro převod na základní datový typ nebo naopak. Některé z podporovaných datových typů jsou Char, Boolean, Int32, int64, Double, Decimal, String, Int16 atd. Třída Convert také podporuje metody pro jiné převody.
Převést na řetězec
Metoda Convert.ToString převádí datový typ na řetězec. V příklad níže převádíme celočíselný datový typ na datový typ řetězce.
int number = 75; string s = Convert.ToString(number);
InvalidCastException
Někdy je možné, že kompilátor nemusí pochopit, zda je operace prováděná k převodu jednoho typu na jiný platná nebo ne. To způsobí, že kompilátor během běhu selže. Jakmile se převod typu nezdaří, vyvolá neplatnou výjimku.
InvalidCastException je vyvolána vždy, když implementace explicitní nebo převodu typu není podporována oběma datovými typy použitými pro převod.
Závěr
V tomto kurzu jsme se naučili typy převodu a jak provést převod mezi různými datovými typy. Implicitní převod je převod, ve kterém je odvozená třída převedena na základní třídu, jako je int, do typu float.
Explicitní převod je převod, který může způsobit ztrátu dat. Explicitní převod převede základní třídu na odvozenou třídu. Možná budeme muset provést převod na různé jiné datové typy, k tomu využijeme pomoc třídy pomocníka. Pomocná třída jako „Parse“ a „ConvertTo“ nabízí různé způsoby převodu jednoho datového typu na jiný.
Také jsme se dozvěděli o výjimce, kterou kompilátor vyvolá, když nerozumí převodu mezi dvěma typy.
=> Snadného průvodce C # najdete zde
Doporučené čtení
- Datové typy a proměnné C # s příklady
- Datové typy C ++
- Konverze typu v C ++
- Těžba dat: Proces, techniky a hlavní problémy v analýze dat
- Výukový program Data Mart - Typy, příklady a implementace Data Mart
- Typy testování migrace: S testovacími scénáři pro každý typ
- 10+ nejlepších nástrojů pro sběr dat se strategiemi sběru dat
- Funkce datového fondu v produktu IBM Rational Quality Manager pro správu testovacích dat