Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilMiroslava Vlčková
1
C# - konverze datových typů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí
2
Typy konverzí Implicitní: Nedochází ke změně hodnoty, protože proměnná je konvertována na typ s větším rozsahem Automatické (není nutné „informovat“ kompilátor o jejich provedení) Př.: int i = 10; long l = i; Explicitní: Hodnota je převáděna na typ s menším rozsahem Nutné použít operátor přetypování (kompilátor musí „vědět“, že dojde k přetypování) Př.:i = (int) l;
3
Implicitní datové konverze Toto jsou podporované implicitní datové konverze v C#:
4
Explicitní datové konverze - typy Microsoft.NET poskytuje tři způsoby datových konverzí Parsing Třídu Convert Explicitní cast operátor ()
5
Parsing
6
Class Convert
7
cast operátor ()
8
Explicitní číselné konverze Pokud se konvertovaná hodnota nevejde rozsahem do cílové proměnné dojde ke změně její hodnoty Nová hodnota nabude velikosti zbytku z velikosti rozsahu cílové proměnné, nebo do velikosti násobků tohoto rozsahu Př.: public class ExplicitNumberReTyping { public static void Retype() { int intValue = 300; //po pretypovani je hodnota 44 (300 - 256(pocet hodnot rozsahu typu byte)) byte byteValue = (byte)intValue; Console.WriteLine("Nova hodnota : {0}", byteValue); } }
9
Kontrolované číselné konverze Kontrolovat korektnost převodů je možné pomocí klíčového slova CHECKED V případě, že cílový typ nevyhovuje rozsahem přetypovávané hodnotě dojde k vyvolání výjimky System.OverflowException Vyjímku je možné ošetřit konstrukcí sekce try - catch
10
Kontrolovaná číselná konverze příklad public static void CheckedRetypeWithCatch() { try { checked { int intvalue = 300; byte byteValue = (byte) intValue; } } catch(System.OverflowException) { //zpracovani preteceni Console.WriteLine("Pri konverzi doslo k preteceni ciloveho rozsahu"); } }
11
Použití klíčového slova CHECKED jako operátoru Pokud je klíčové slovo použito jako operátor je při jeho použití v případě přetečení opět vyvolána vyjímka System.OverflowException Opakem je klíčové slovo unchecked – slouží pro označení nekontrolované konverze Př.: public static void CheckedOperatorRetype() { int intHodnota = 355; byte byteHodnota = checked ((byte)intHodnota); }
12
Třída System.Convert Třída která obsahuje sadu metod pro konverze datových typů Lze provádět i konverze nesourodých datových typů (např. string na číslo a naopak) Všechny konverze provedené pomocí této třídy jsou kontrolované a proto je v případě chyby vyvolána výjimka Př.: //prevod retezce na ciselnou hodnotu public static void FromStringToInt32() { string stringValue = „369"; int intValue = System.Convert.ToInt32(stringValue); Console.WriteLine(intValue); }
13
Úkoly a cvičení Vytvořte 4 jednoduché aplikace na: Demonstraci implicitní konverze Demonstraci přetypování pomocí parsingu Demonstraci přetypování pomocí třídy Convert Demonstraci přetypování pomocí cast operátoru () Řešení naleznete v ukázkových příkladech ImplicitConversions Parsing ClassConvert CastOperator_conversion
14
14 Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… www.wikipedia.com Seriály o programování v jazyce C# : www.živě.cz www.java2s.com www.functionx.com www.csharp-station.com www.msdn.com www.bytes.com www.c-sharpcorner.com
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.