Kun ilmoitat uuden muuttujan C#:ssa, alustat sen yleensä tietyllä tietotyypillä. Tämä voi olla kokonaisluku, desimaali, boolen arvo, merkkijono tai muu tietotyyppi.
Voit muuntaa arvon yhdestä tietotyypistä toiseen. Jos esimerkiksi muunnat merkkijonon kokonaisluvuksi, sinun on ensin jäsennettävä arvo. Tässä on muutamia eri tapoja muuntaa ja jäsentää arvoja.
Miksi sinun täytyy muuntaa tai jäsentää tietoja?
Esimerkki siitä, milloin saatat joutua jäsentämään tietoja, on, jos pyydät käyttäjän syötteitä C#-konsolisovelluksessa:
Konsoli. WriteLine("Anna ikäsi:");
merkkijono palkka = konsoli. Lue rivi();
Tässä tapauksessa käyttäjä syöttää kokonaisluvun arvon, mutta sovellus tallentaa sen oletusarvoisesti merkkijonona. Jos yritit käyttää merkkijonoarvoa laskutoimituksissa, saat käännösvirheen:
Toinen syy tietotyyppien muuntamiseen on käyttää tiettyjä menetelmiä, jotka ovat käytettävissä vain tietylle tietotyypille. Esimerkiksi DateTime-rakenne sisältää funktion, jonka avulla voit lisätä minuutteja. Jos käyttäisit sen sijaan merkkijonoa, sinulla ei olisi pääsyä menetelmään:
Voit myös haluta muuntaa arvon toiseksi tietotyypiksi, jos sinun on noudatettava a: n tietotyyppirakennetta luokka luotu C# tai a rakenne C#.
Kuinka muuntaa ja jäsentää eri tietotyyppejä
Voit jäsentää erilaisia tietotyyppejä, kuten kokonaislukuja, tuplauksia, loogisia tyyppejä ja päivämäärä-aikatyyppejä.
Merkkijonoista kokonaislukuihin
Jos haluat muuntaa merkkijonon kokonaisluvuksi, käytä Parse()-menetelmää:
merkkijono strInt = "45";
int int32 = Int32.Parse (strInt);
Konsoli. WriteLine (int32); // lähtö: 45
Voit myös jäsentää merkkijonon eri bittikokoisiksi kokonaisluvuiksi, kuten Int16, Int32 tai Int64.
int int16 = Int16.Parse (strInt);
Konsoli. WriteLine (int16); // lähtö: 45
Jos käytät Parse()-menetelmää, varmista, että merkkijonoarvo edustaa kokonaislukua. Jos yrität jäsentää muuta kuin kokonaislukuarvoa, kuten "Hei", saat ajon aikana jäsennysvirheen.
merkkijono invalidString = "Hei";
int invalidResult = Int32.Parse (invalidString);
Voit myös käyttää TryParse()-menetelmää tunnistaaksesi poikkeukset, joita voi esiintyä jäsennyksen aikana:
int tryParseResult = 0;
jos (Int32.TryParse(virheellinen merkkijono, ulostryParseResult))
{
Konsoli.WriteLine(tryParseResult);
}
muu
{
Konsoli. WriteLine("Jotain meni pieleen");
}
Muuntaaksesi kokonaisluvun takaisin merkkijonoksi, käytä ToString()-menetelmää:
merkkijono intString = 45.ToString();
Konsoli. WriteLine (intString); // lähtö: 45
Strings to doubles
Merkkijonon jäsentäminen kaksoisluvuksi on hyvin samanlaista kuin yhden jäsentäminen kokonaisluvuksi. Käytä Parse()-menetelmää Double-luokasta:
merkkijono strDouble = "90.5";
kaksinkertainen d = Double. Jäsentää (strDouble);
Konsoli. WriteLine (d); // lähtö: 90.5
Kuten kokonaislukujen kohdalla, voit myös käyttää TryParse()-menetelmää mahdollisten jäsennysvirheiden havaitsemiseen:
merkkijono invalidStringDouble = "Hei";
kaksinkertainen tryParseDouble = 0;
jos (Kaksinkertainen.TryParse(invalidStringDouble, uloskokeileParseDouble))
{
Konsoli.WriteLine(kokeileParseDouble);
}
Jos haluat muuntaa tuplaarvon takaisin kokonaisluvuksi, käytä ToString()-menetelmää:
kaksinkertainen dTupla = 90.5;
merkkijono dString = dDouble. ToString();
Konsoli. WriteLine (dString); // lähtö: 90.5
Tuplaukset kokonaislukuihin
Castingilla voit muuntaa tuplaluvun kokonaisluvuksi. Koska kokonaisluku tallentaa vain kokonaisluvun, muunnos poistaa desimaalit. Esimerkiksi "12.34" muuntaminen tallentaa vain arvon "12".
kaksinkertainen dArvo = 12.34;
int iValue = (int)dArvo;
Konsoli. WriteLine (iValue); // lähtö: 12
Voit myös heittää kokonaisluvun takaisin tuplaan:
dArvo = (kaksinkertainen)minä arvostan;
Konsoli. WriteLine (dValue); // lähtö: 12
Merkkijonot ja Boolen arvot
Jos haluat muuntaa merkkijonon totuusarvoksi, käytä joko Parse()- tai ToBoolean()-menetelmää:
merkkijono stringBool = "Totta";
bool b = bool. Jäsentää (stringBool);// tai
b = Muunna. ToBool (stringBool);
Konsoli. WriteLine (b); // lähtö: tosi
Jos haluat muuntaa boolen takaisin merkkijonoksi, käytä ToString()-menetelmää:
merkkijono strTrue = totta.ToString();
merkkijono strFalse = väärä.ToString();
Kokonaisluvut ja Boolen arvot
Jos haluat muuntaa kokonaisluvun loogisiksi arvoksi, käytä ToBoolean()-menetelmää muuntaaksesi joko "1" tai "0" vastaavaksi loogiseksi arvoksi. Arvo "1" muuntaa arvoksi "tosi", kun taas "0" muuntaa arvoksi "false":
int falseBit = 0;
int trueBit = 1;
Konsoli. WriteLine (muunnos. ToBoolen (falseBit)); // lähtö: false
Konsoli. WriteLine (muunnos. ToBoolen (trueBit)); // lähtö: tosi
Voit myös välittää muun kokonaisluvun kuin "1" tai "0" ToBoolen()-metodille. Oletuksena menetelmä palauttaa edelleen "true":
int invalidBit = 8;
Konsoli. WriteLine (muunnos. ToBoolean (invalidBit)); // lähtö: tosi
Jos haluat muuntaa loogisen arvon takaisin kokonaisluvuksi, käytä Muunna. ToInt32() -menetelmä. Muuntaminen "true" palauttaa "1" ja muuntaminen "false" palauttaa "0".
bool iBool = totta;
int bInt = Muunna. ToInt32(iBool);
Konsoli. WriteLine (bInt); // lähtö: 1
Merkkijonot DateTimeen
Jos haluat jäsentää merkkijonon päivämäärä-ajan muotoon, käytä DateTimea. Parse()-menetelmä:
DateTime newDateTime = DateTime. Jäsentää("01/01/2018 00:00:00");
Konsoli. WriteLine (newDateTime); // lähtö: 01/01/2018 00:00:00
Jos haluat muuntaa päivämäärän takaisin merkkijonoksi, käytä ToString()-menetelmää:
PäiväysAika dt = Uusi Treffiaika(2018, 1, 1);
merkkijono dtString = dt. ToString();
Konsoli. WriteLine (dtString); // lähtö: 01/01/2018 00:00:00
Arvojen jäsentäminen eri tietotyypeille
Nyt ymmärrät, kuinka arvot muunnetaan yhdestä tietotyypistä toiseen. Nämä eivät ole ainoita konversioita, joten voit oppia lisää muista C#:n tietotyypeistä.
Voit myös tutkia, miten muut tietotyypit toimivat muilla kielillä, kuten JavaScript.