Όταν δηλώνετε μια νέα μεταβλητή στο C#, συνήθως την αρχικοποιείτε με έναν συγκεκριμένο τύπο δεδομένων. Αυτό μπορεί να είναι ακέραιος, δεκαδικός, boolean, συμβολοσειρά ή άλλος τύπος δεδομένων.
Μπορείτε να μετατρέψετε μια τιμή από έναν τύπο δεδομένων σε έναν άλλο. Για παράδειγμα, εάν μετατρέπετε μια συμβολοσειρά σε ακέραιο, θα πρέπει πρώτα να αναλύσετε την τιμή. Ακολουθούν μερικοί διαφορετικοί τρόποι με τους οποίους μπορείτε να μετατρέψετε και να αναλύσετε τιμές.
Γιατί χρειάζεται να μετατρέψετε ή να αναλύσετε δεδομένα;
Ένα παράδειγμα για το πότε μπορεί να χρειαστεί να αναλύσετε δεδομένα είναι εάν ζητάτε εισαγωγή χρήστη σε μια εφαρμογή κονσόλας C#:
Κονσόλα. WriteLine("Εισαγάγετε την ηλικία σας:");
string μισθός = Κονσόλα. ReadLine();
Σε αυτήν την περίπτωση, ο χρήστης θα εισαγάγει μια ακέραια τιμή, αλλά η εφαρμογή θα την αποθηκεύσει ως συμβολοσειρά από προεπιλογή. Εάν προσπαθήσατε να χρησιμοποιήσετε την τιμή συμβολοσειράς σε οποιονδήποτε υπολογισμό, θα λάβατε ένα σφάλμα μεταγλώττισης:
Ένας άλλος λόγος για τη μετατροπή τύπων δεδομένων είναι η πρόσβαση σε ορισμένες μεθόδους που είναι διαθέσιμες μόνο για έναν συγκεκριμένο τύπο δεδομένων. Για παράδειγμα, η δομή DateTime περιέχει μια συνάρτηση που σας επιτρέπει να προσθέτετε λεπτά. Αν χρησιμοποιούσατε μια συμβολοσειρά, δεν θα είχατε πρόσβαση στη μέθοδο:
Μπορεί επίσης να θέλετε να μετατρέψετε μια τιμή σε άλλο τύπο δεδομένων, εάν χρειάζεται να ακολουθήσετε τη δομή τύπου δεδομένων του a κλάση που δημιουργήθηκε σε C# ή α δομή σε C#.
Πώς να μετατρέψετε και να αναλύσετε διαφορετικούς τύπους δεδομένων
Μπορείτε να αναλύσετε διαφορετικούς τύπους δεδομένων, όπως ακέραιους, διπλούς, τύπους boolean και τύπους ημερομηνίας.
Συμβολοσειρές σε ακέραιους αριθμούς
Για να μετατρέψετε μια συμβολοσειρά σε ακέραιο, χρησιμοποιήστε τη μέθοδο Parse():
συμβολοσειρά strInt = "45";
ενθ int32 = Int32.Parse (strInt);
Κονσόλα. WriteLine (int32); // έξοδος: 45
Μπορείτε επίσης να αναλύσετε τη συμβολοσειρά σε ακέραιους αριθμούς διαφορετικών μεγεθών bit, όπως Int16, Int32 ή Int64.
ενθ int16 = Int16.Parse (strInt);
Κονσόλα. WriteLine (int16); // έξοδος: 45
Εάν χρησιμοποιείτε τη μέθοδο Parse(), βεβαιωθείτε ότι η τιμή συμβολοσειράς αντιπροσωπεύει έναν ακέραιο. Εάν προσπαθήσετε να αναλύσετε μια μη ακέραια τιμή όπως "Hello", θα λάβετε ένα σφάλμα ανάλυσης κατά το χρόνο εκτέλεσης.
συμβολοσειρά invalidString = "Γειά σου";
ενθ invalidResult = Int32.Parse (invalidString);
Μπορείτε επίσης να χρησιμοποιήσετε τη μέθοδο TryParse() για να συλλάβετε τυχόν εξαιρέσεις που θα μπορούσαν να προκύψουν κατά την ανάλυση:
ενθ tryParseResult = 0;
αν (Int32.TryParse(invalidString, έξωtryParseResult))
{
Κονσόλα.WriteLine(tryParseResult);
}
αλλού
{
Κονσόλα. WriteLine("Κάτι πήγε στραβά");
}
Για να μετατρέψετε έναν ακέραιο σε συμβολοσειρά, χρησιμοποιήστε τη μέθοδο ToString():
string intString = 45.ToString();
Κονσόλα. WriteLine (intString); // έξοδος: 45
Χορδές σε διπλάσια
Η ανάλυση μιας συμβολοσειράς σε διπλό είναι πολύ παρόμοια με την ανάλυση ενός σε έναν ακέραιο. Χρησιμοποιήστε τη μέθοδο Parse() από την κλάση Double:
συμβολοσειρά strΔιπλή = "90.5";
διπλό d = Διπλό. Ανάλυση (strDouble);
Κονσόλα. WriteLine (d); // έξοδος: 90,5
Όπως και με τους ακέραιους αριθμούς, μπορείτε επίσης να χρησιμοποιήσετε τη μέθοδο TryParse() για να εντοπίσετε τυχόν σφάλματα ανάλυσης που θα μπορούσαν να προκύψουν:
συμβολοσειρά invalidStringDouble = "Γειά σου";
διπλό tryParseDouble = 0;
αν (Διπλό.TryParse(invalidStringDouble, έξωtryParseDouble))
{
Κονσόλα.WriteLine(tryParseDouble);
}
Για να μετατρέψετε ένα διπλό σε ακέραιο, χρησιμοποιήστε τη μέθοδο ToString():
διπλό dDouble = 90.5;
συμβολοσειρά dString = dDouble. ToString();
Κονσόλα. WriteLine (dString); // έξοδος: 90,5
Διπλασιάζει σε Ακέραιους
Μπορείτε να χρησιμοποιήσετε τη μετάδοση για να μετατρέψετε ένα διπλό σε ακέραιο. Επειδή ένας ακέραιος αριθμός αποθηκεύει μόνο έναν ακέραιο αριθμό, η μετατροπή θα αφαιρέσει τα δεκαδικά ψηφία. Για παράδειγμα, η μετατροπή "12.34" θα αποθηκεύσει μόνο την τιμή "12".
διπλό dValue = 12.34;
ενθ iValue = (ενθ)dValue;
Κονσόλα. WriteLine (iValue); // έξοδος: 12
Μπορείτε επίσης να επαναφέρετε έναν ακέραιο σε διπλό:
dValue = (διπλό)iValue;
Κονσόλα. WriteLine (dValue); // έξοδος: 12
Συμβολοσειρές και Boolean Values
Για να μετατρέψετε μια συμβολοσειρά σε boolean, χρησιμοποιήστε τη μέθοδο Parse() ή ToBoolean():
συμβολοσειρά stringBool = "Αληθής";
bool b = bool. Ανάλυση (stringBool);// ή
b = Μετατροπή. ToBoolean (stringBool);
Κονσόλα. WriteLine (β); // έξοδος: αληθής
Για να μετατρέψετε ένα boolean ξανά σε συμβολοσειρά, χρησιμοποιήστε τη μέθοδο ToString():
συμβολοσειρά strTrue = αληθής.ToString();
συμβολοσειρά strFalse = ψευδής.ToString();
Ακέραιοι και Boolean Τιμές
Για να μετατρέψετε έναν ακέραιο σε boolean, χρησιμοποιήστε τη μέθοδο ToBoolean() για να μετατρέψετε είτε ένα "1" ή "0" στην ισοδύναμη δυαδική του τιμή. Η τιμή "1" θα μετατραπεί σε "true" ενώ η τιμή "0" μετατρέπεται σε "false":
ενθ falseBit = 0;
ενθ trueBit = 1;
Κονσόλα. WriteLine (Μετατροπή. ToBoolean (falseBit)); // έξοδος: ψευδής
Κονσόλα. WriteLine (Μετατροπή. ToBoolean (trueBit)); // έξοδος: αληθής
Μπορείτε επίσης να μεταβιβάσετε μια ακέραια τιμή διαφορετική από το "1" ή το "0" στη μέθοδο ToBoolean(). Από προεπιλογή, η μέθοδος θα εξακολουθεί να επιστρέφει "true":
ενθ invalidBit = 8;
Κονσόλα. WriteLine (Μετατροπή. ToBoolean (invalidBit)); // έξοδος: αληθής
Για να μετατρέψετε ένα boolean πίσω σε ακέραιο, χρησιμοποιήστε το Convert. Μέθοδος ToInt32(). Η μετατροπή "true" θα επιστρέψει "1" και η μετατροπή "false" θα επιστρέψει "0".
bool iBool = αληθής;
ενθ bInt = Μετατροπή. ToInt32(iBool);
Κονσόλα. WriteLine (bInt); // έξοδος: 1
Συμβολοσειρές στην ημερομηνία ώρας
Για να αναλύσετε μια συμβολοσειρά σε μορφή ημερομηνίας, χρησιμοποιήστε το DateTime. Μέθοδος Parse():
DateTime newDateTime = Ημερομηνία Ώρα. Αναλύω λέξη("01/01/2018 00:00:00");
Κονσόλα. WriteLine (newDateTime); // έξοδος: 01/01/2018 00:00:00
Για να μετατρέψετε μια ημερομηνία ημερομηνίας σε συμβολοσειρά, χρησιμοποιήστε τη μέθοδο ToString():
ΗμερομηνίαΏρα dt = νέος Ημερομηνία ώρα(2018, 1, 1);
συμβολοσειρά dtString = dt. ToString();
Κονσόλα. WriteLine (dtString); // έξοδος: 01/01/2018 00:00:00
Ανάλυση τιμών σε διαφορετικούς τύπους δεδομένων
Τώρα καταλαβαίνετε πώς να μετατρέψετε τιμές από έναν τύπο δεδομένων σε έναν άλλο. Αυτές δεν είναι οι μόνες μετατροπές εκεί έξω, επομένως μη διστάσετε να μάθετε περισσότερα για άλλους τύπους δεδομένων στο C#.
Μπορείτε επίσης να εξερευνήσετε πώς λειτουργούν άλλοι τύποι δεδομένων σε άλλες γλώσσες, όπως η JavaScript.