Amikor deklarál egy új változót C#-ban, általában egy adott adattípussal inicializálja. Ez lehet egész szám, decimális, logikai érték, karakterlánc vagy más adattípus.
Átalakíthat egy értéket egyik adattípusból a másikba. Ha például egy karakterláncot egész számmá konvertál, először elemeznie kell az értéket. Íme néhány különböző mód az értékek konvertálására és elemzésére.
Miért van szükség az adatok konvertálására vagy elemzésére?
Példa arra, amikor szükség lehet adatok elemzésére, ha egy C# konzolalkalmazásban kér felhasználói bevitelt:
Konzol. WriteLine("Add meg az életkorod:");
string fizetés = Konzol. ReadLine();
Ebben az esetben a felhasználó egész számot ad meg, de az alkalmazás ezt alapértelmezés szerint karakterláncként tárolja. Ha bármilyen számításban megpróbálta használni a karakterlánc értékét, fordítási hibát kapna:
Az adattípusok átalakításának másik oka az, hogy bizonyos módszereket kell elérni, amelyek csak egy adott adattípushoz állnak rendelkezésre. Például a DateTime struktúra tartalmaz egy függvényt, amely lehetővé teszi percek hozzáadását. Ha helyette egy karakterláncot használna, akkor nem férne hozzá a metódushoz:
Érdemes lehet egy értéket másik adattípusra konvertálni, ha követnie kellett az a adattípus-struktúráját osztály C#-ban készült vagy a szerkezet C# nyelven.
Különböző adattípusok konvertálása és elemzése
Különféle adattípusokat elemezhet, például egész számokat, duplákat, logikai típusúakat és dátum-időtípusokat.
Strings to Integers
Egy karakterlánc egész számmá alakításához használja a Parse() metódust:
string strInt = "45";
int int32 = Int32.Elemzés (strInt);
Konzol. WriteLine (int32); // kimenet: 45
A karakterláncot különböző bitméretű egész számokká is elemezheti, például Int16, Int32 vagy Int64.
int int16 = Int16.Elemzés (strInt);
Konzol. WriteLine (int16); // kimenet: 45
Ha a Parse() metódust használja, győződjön meg arról, hogy a karakterlánc értéke egész számot jelent. Ha nem egész értéket, például "Hello" próbál elemezni, futás közben elemzési hibaüzenetet fog kapni.
string invalidString = "Helló";
int invalidResult = Int32.Parse (invalidString);
Használhatja a TryParse() metódust is az elemzés során előforduló kivételek észlelésére:
int tryParseResult = 0;
ha (Int32.TryParse(érvénytelenString, kitryParseResult))
{
Konzol.WriteLine(tryParseResult);
}
más
{
Konzol. WriteLine("Valami elromlott");
}
Egy egész szám karakterláncsá alakításához használja a ToString() metódust:
string intString = 45.ToString();
Konzol. WriteLine (intString); // kimenet: 45
Strings to Doubles
Egy karakterlánc duplává történő elemzése nagyon hasonlít egy egész számmá történő elemzéséhez. Használja a Parse() metódust a Double osztályból:
string strDouble = "90.5";
kettős d = Dupla. Elemzés (strDouble);
Konzol. WriteLine (d); // kimenet: 90.5
Az egész számokhoz hasonlóan a TryParse() metódust is használhatja az esetlegesen előforduló elemzési hibák észlelésére:
string invalidStringDouble = "Helló";
kettős tryParseDouble = 0;
ha (Kettős.TryParse(invalidStringDouble, kitryParseDouble))
{
Konzol.WriteLine(tryParseDouble);
}
A dupla egész számmá való konvertálásához használja a ToString() metódust:
kettős dDupla = 90.5;
string dString = dDupla. ToString();
Konzol. WriteLine (dString); // kimenet: 90.5
Duplája egész számra
A casting segítségével a duplát egész számmá konvertálhatja. Mivel egy egész szám csak egész számot tárol, az átalakítás eltávolítja a tizedesjegyeket. Például a „12,34” konvertálása csak a „12” értéket tárolja.
kettős dÉrték = 12.34;
int iValue = (int)dÉrték;
Konzol. WriteLine (iValue); // kimenet: 12
Egy egész számot visszaadhat duplára is:
dÉrték = (kettős)Értékelem;
Konzol. WriteLine (dValue); // kimenet: 12
Karakterláncok és logikai értékek
Egy karakterlánc logikai értékké alakításához használja a Parse() vagy a ToBoolean() metódust:
string stringBool = "Igaz";
bool b = bool. Elemzés (stringBool);// vagy
b = Átalakítás. ToBool (stringBool);
Konzol. WriteLine (b); // kimenet: igaz
A logikai érték karakterláncsá alakításához használja a ToString() metódust:
strTrue = igaz.ToString();
strFalse = hamis.ToString();
Egész számok és logikai értékek
Egész szám logikai értékké való konvertálásához használja a ToBoolean() metódust az "1" vagy a "0" egyenértékű logikai értékre való konvertálásához. Az "1" érték "igaz" értékre, míg a "0" "hamis" értékre változik:
int falseBit = 0;
int trueBit = 1;
Konzol. WriteLine (Konvertálás. ToBoolean (falseBit)); // kimenet: false
Konzol. WriteLine (Konvertálás. ToBoolean (trueBit)); // kimenet: igaz
Az „1”-től vagy „0”-tól eltérő egész értéket is átadhat a ToBoolean() metódusnak. Alapértelmezés szerint a metódus továbbra is "true"-t ad vissza:
int invalidBit = 8;
Konzol. WriteLine (Konvertálás. ToBoolean (invalidBit)); // kimenet: igaz
A logikai érték egész számmá való visszaállításához használja a Konvertálás parancsot. ToInt32() metódus. Az "igaz" átalakítása "1"-et, a "hamis" átalakítása pedig "0"-t ad vissza.
bool iBool = igaz;
int bInt = Konvertálás. ToInt32(iBool);
Konzol. WriteLine (bInt); // kimenet: 1
Strings DateTime
Egy karakterlánc datetime formátumba történő elemzéséhez használja a DateTime paramétert. Parse() metódus:
DateTime newDateTime = DateTime. Elemzés("01/01/2018 00:00:00");
Konzol. WriteLine (newDateTime); // kimenet: 2018.01.01. 00:00:00
A dátumidő karakterláncsá alakításához használja a ToString() metódust:
DateTime dt = új Dátum idő(2018, 1, 1);
string dtString = dt. ToString();
Konzol. WriteLine (dtString); // kimenet: 2018.01.01. 00:00:00
Értékek elemzése különböző adattípusokhoz
Most már megérti, hogyan konvertálhat értékeket egyik adattípusból a másikba. Nem ezek az egyetlen konverziók, ezért nyugodtan tudjon meg többet a C# más adattípusairól.
Azt is felfedezheti, hogy más adattípusok hogyan működnek más nyelveken, például a JavaScriptben.