Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

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í.

Podobné prezentace


Prezentace na téma: "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í."— Transkript prezentace:

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 ( (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,… Seriály o programování v jazyce C# :


Stáhnout ppt "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í."

Podobné prezentace


Reklamy Google