You are on page 1of 8

Adatok más típusú adattá alakítása

(Konvertálás)
Miért kell konvertálni?
• A konzolról beolvasás eredménye minden esetben egy sztring.
• A beolvasott adatokat sok esetben sztringből más típussá kell
átalakítani.(pl. sztringgel nem lehet számolni.)
• Console.Write("Kérem a számot:");
string x = Console.ReadLine();
Console.Write("A szám kétszerese = {0}", x*2); // hibás egy string típusú
adatot megszorozni
• Fordított eset is előfordulhat: Egy adott típusú adatot sztringgé kell
alakítani (konvertálni)
Hogy konvertáljunk?

• Az átalakítást függvények végzik.


• A függvényeknek oda kell adni a string alakú értéket, azok
megpróbálják ellenőrizni, hogy helyes formátumú-e az adat, és
eredményül már a kívánt típusú értéket adják vissza.
• Az átalakító függvényeket - melyek a string típusból a kívánt típusba
alakítanak át - közös néven parse függvényeknek nevezzük.
.Parse(…)
• char.Parse(...) Karakterré alakít.
• bool.Parse(...) Logikai értékké alakít.
• float.Parse(...) Törtté alakít.
• double.Parse(...) Törtté alakít.
• int.Parse(...) Egész értékre alakít.

A Parse utáni zárójelben az átalakítandó sztring szerepel.


Convert.To… (Egy másik átalakító függvény)
• Convert.ToChar(...) // char
• Convert.ToBoolean(...) // bool
• Convert.ToSingle(...) // float
• Convert.ToDouble(...) // double
• Convert.ToSByte(...) // sbyte
• Convert.ToInt16(...) // short
• Convert.ToInt32(...) // int
• Convert.ToInt64(...) // long
• Convert.ToByte(...) // byte
• Convert.ToUInt16(...) // ushort
• Convert.ToUInt32(...) // uint
• Convert.ToUInt64(...) // ulong
Példa a két függvényre:
• Valójában mindegy, melyik függvényt használjuk, mindkettő pontosan
ugyanazt fogja csinálni.
• Pl tört beolvasása billentyűzetről, és konvertálása
• Console.Write("Kérek egy tört számot:");
string s = Console.ReadLine();
double x = double.Parse( s );
• Vagy
• Console.Write("Kérek egy tört számot:");
string s = Console.ReadLine();
double x = Convert.ToDouble( s );
Hibás adatbevitel
• Gyakori probléma, hogy a felhasználó nem megfelelő formátumú
adatot ír be (pl. egész helyett, törtet vagy szöveget ír be), ezért a
program futás közbeni hibával leáll.
• A probléma megoldásának egyik módja, hogy a Parse(...) függvény
helyett a TryParse(...) függvényt használjuk.
• A TryParse a neve szerint is először próbál parse-olni. Ha sikerül,
akkor megkapjuk a konvertált értéket egy változóban, és true
értékkel jelzi a sikert.
• Ha sikertelen volt a konvertálás, akkor program futása nem áll le, a
változóba nem kerül konvertált érték, és false érték jelzi a
sikertelenséget.
Példa a TryParse-re
• int x;
if (int.TryParse( Console.ReadLine(), out x) )
{
Ez az igaz ág, vagyis sikeres volt a konvertálás.
A beírt szám az x változóban van, lehet vele számolni
}
else
{ Ez az hamis ág, sikertelen volt az átalakítás, mert pl. hibás volt az
adatbeviteled.
}
Billentyűzetről olvasunk be egy számot (ez így sztring), és egésszé
akarjuk alakítani, az x egész típusú változóba letárolva (out x)

You might also like