V C# nemůžete přiřadit proměnnou jednoho datového typu do proměnné jiného datového typu, pokud nemá typ definovánu implicitní konverzi (např. celé číslo můžete vložit do proměnné s desetinným číslem bez použití ikonky pro přetypování) nebo objekt není podtypem typu proměnné.
Když se ale převádí z datového typu, který je "větší" (má více bitů nebo přesnost) než cílový datový typ (např. převádění desetinného čísla na celé), musíte vložit před převáděnou proměnnou ikonku pro přetypování. Při tomto přetypování však může dojít ke ztrátě přesnosti, typicky například desetinné části nebo přetečení, což se dá kontrolovat v bloku checked.
Ikonky pro přetypování můžete použít pouze pro číselné datové typy a znaky nebo pro objekty, které chcete uložit v proměnné, jejíž typ je nadtypem objektu (například pokud chcete přiřadit objekt typu XSprite uloženého v proměnné typu objekt do proměnné typu XSprite). Pro převádění na řetězec, nebo typ bool (nabývá jen dvou hodnot: true, nebo false) musíte použít ikonky pro konverzi.
Přetypování se používá nejčastěji při převodu čísel a znaků, nelze však pomocí něho převádět řetězce nebo typ bool na číslo (chyba bude ohlášena už při překladu programu). Přetypování lze využít i u objektů.
|  | Přetypování (For modes 2D, 3D, Console) |  Zobrazit příkladySkrýt příklady | Umožňuje změnu datového typu proměnné. | Pomocí příkazu Přetypování přetypuje reálné číslo na celé, znak na reálné číslo a znovu reálné číslo na celé. | | |
Vytvoří nový 2D sprite z obrázku načteného z vybraného souboru a přidá ho do 2D světa, aby se zobrazil. Tento sprite pak naklonuje do jiné proměnné typu XSprite2D, přičemž je třeba použít přetypování. Naklonovaný sprite zmenší na polovinu šířky i výšky a také přidá do 2D světa. Bez použití klonování by se změna druhého spritu projevila i na prvním spritu. | | |
Do proměnné c obecného typu object vloží novou kolekci typu ArrayList. Aby s proměnnou c mohl pracovat jako s kolekcí ArrayList, je třeba ji přetypovat. Po přetypování se do ní už může vložit hodnota 5 (bez přetypování by vkládání ani jiné operace s kolekcí nefungovaly). | | |
|
|
|  | Přetypovat na celé číslo (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Přetypuje číslo na Int32. | Převede tři reálná čísla a jeden znak na celá čísla, přičemž je vždy vypíše na obrazovku. | | |
|
|
|  | Přetypovat na float (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Přetypuje číslo na float. | Převede tři reálná čísla, jedno celé a jeden znak na reálná čísla, přičemž je vždy vypíše na obrazovku. | | |
|
|
|  | Přetypovat na double (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Přetypuje číslo na double. | Převede tři reálná čísla, jedno celé a jeden znak na čísla typu double, přičemž je vždy vypíše na obrazovku. | | |
|
|
Konverze se nejčastěji používá při převodu řetězce na čísla, nebo při konverzi znaků na klávesy a obráceně.
|  | Převeď znak na klávesu (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Převede znak na odpovídající kód klávesy. | Vypíše do okna výstupu kódy kláves převedené ze zadaných znaků. | | |
|
|
|  | Převeď klávesu na znak (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Převede kód klávesy na odpovídající znak. | Vypíše do okna výstupu odpovídající znaky převedené ze zadaných kódů kláves. | | |
|
|
|  | Převeď na celé číslo (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Převede parametr na celé číslo. |
Na celé číslo můžete převádět reálná čísla typu float i double, proměnnou typu bool, znaky a řetězce, které obsahují pouze celé číslo (řetězec nesmí obsahovat ani reálné číslo, například konverze "-4.8" neprojde). Pokud budete převádět něco jiného, program vyhodí výjimku.
Převede zadané konstanty (celé číslo, řetězec, reálné číslo, true a false) na celé číslo a vypíše je na obrazovku. Jako poslední se pokusí převést řetězec "AAA", ale ten převést nejde. Proto je vyhozena výjimka, která je zachycena v bloku catch a je vypsáno, že "AAA" nelze převést na číslo. | | |
|
|
|  | Převeď na reálné číslo (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Převede parametr na reálné číslo. |
Na reálné číslo typu float můžete převádět všechna celá a reálná čísla, proměnnou typu bool a řetězce, které obsahují pouze reálné číslo. Pokud budete převádět něco jiného, program vyhodí výjimku.
Převede zadané konstanty (celé číslo, řetězec, konstanta e, true a false) na reálné číslo a vypíše je na obrazovku. Jako poslední se pokusí převést řetězec "AAA", ale ten převést nejde. Proto je vyhozena výjimka, která je zachycena v bloku catch a je vypsáno, že "AAA" nelze převést na číslo. | | |
|
|
|  | Převeď na double (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Převede parametr na double. |
Na reálné číslo typu double můžete převádět všechna celá a reálná čísla, proměnnou typu bool a řetězce, které obsahují pouze reálné číslo. Pokud budete převádět něco jiného, program vyhodí výjimku.
Převede zadané konstanty (celé číslo, řetězec, reálné číslo typu float, true a false) na typ double a vypíše je na obrazovku. Jako poslední se pokusí převést řetězec "AAA", ale ten převést nejde. Proto je vyhozena výjimka, která je zachycena v bloku catch a je vypsáno, že "AAA" nelze převést na číslo. | | |
|
|
|  | Převeď na datum čas (For modes 2D, 3D, Console) |  Zobrazit příkladSkrýt příklad | Převede zadaný řetězec na datum a čas. Formát data a času můžete napsat do literálu za ikonkou nebo nastavit po stisku pravého tlačítka myši v menu Formát. | Vypíše na obrazovku rok ze zadaného datumu. | | |
|
|
Shledali jste tuto informaci pro Vás užitečnou?
Máte nějaký dotaz nebo připomínku k tomuto tématu? Napište nám.
©1978-2010 SGP SystemsNadřazená stránka | Předchozí stránka | Další stránka |