c type casting explicit implicit data conversion with example
Μετάδοση τύπου δεδομένων σε C # με παραδείγματα: Αυτό το σεμινάριο εξηγεί τη ρητή και σιωπηρή μετατροπή, τη μετατροπή σε συμβολοσειρά και τη μετατροπή τύπων δεδομένων χρησιμοποιώντας βοηθητικές κλάσεις:
Τύποι δεδομένων και μεταβλητές σε C # εξηγήθηκαν λεπτομερώς στο προηγούμενο σεμινάριό μας.
Μάθαμε πώς ένας τύπος δεδομένων μπορεί να μετατραπεί σε έναν άλλο τύπο δεδομένων χρησιμοποιώντας τη μετάδοση τύπου. Η τυποποίηση χωρίζεται σε δύο μέρη, δηλαδή την έμμεση και τη ρητή μετατροπή.
Ας ανακαλύψουμε βαθύτερα το C # Type Casting σε αυτό το σεμινάριο.
=> Αναζητήστε τον εύκολο οδηγό εκπαίδευσης C # εδώ
Είναι σιωπηρή μετατροπή όταν ένας μικρότερος τύπος δεδομένων μετατρέπεται σε μεγαλύτερο τύπο δεδομένων ή παράγωγη κλάση σε βασική κλάση.
Από την άλλη πλευρά, η μετατροπή στην αντίθετη κατεύθυνση είναι γνωστή ως ρητή μετατροπή. Χρειάζεται έναν τελεστή για να μετατρέψει τον υψηλότερο τύπο δεδομένων σε έναν μικρότερο τύπο δεδομένων. Αυτός ο τύπος μετατροπής δεν είναι ασφαλής τύπου και μπορεί να οδηγήσει σε απώλεια δεδομένων.
Τι θα μάθετε:
Μετάδοση τύπου δεδομένων σε C #
Σε αυτό το σεμινάριο, θα συζητήσουμε λεπτομερώς πώς ένας τύπος δεδομένων μπορεί να μετατραπεί σε άλλον τύπο δεδομένων. Το C # είναι στατικός τύπος κατά τη σύνταξη, πράγμα που σημαίνει ότι μετά τη δήλωση μιας μεταβλητής δεν μπορεί να χρησιμοποιηθεί για την αποθήκευση τιμών οποιουδήποτε άλλου τύπου δεδομένων.
Ωστόσο, αυτό μπορεί να ξεπεραστεί με τη μετατροπή αυτού του τύπου σε μεταβλητό τύπο.
υλοποίηση πίνακα κατακερματισμού σε κώδικα c ++
Ας προσπαθήσουμε να μετατρέψουμε μια τιμή συμβολοσειράς σε ακέραιο.
int a; a = 'some random string';
Εάν το συντάξουμε αυτό, θα ρίξει ένα σφάλμα που δηλώνει ότι 'Δεν είναι δυνατή η σιωπηρή μετατροπή τύπου' string 'σε' int '.'
Οι τύποι δεδομένων μπορούν να διαιρεθούν περαιτέρω με βάση τους τύπους δεδομένων.
- Πρωτόγονος
- Μη πρωτόγονο
Πρωτόγονοι τύποι δεδομένων είναι προκαθορισμένα, ενώ οι μη πρωτόγονοι τύποι δεδομένων καθορίζονται από τον χρήστη. Οι τύποι δεδομένων όπως byte, int, short, float, long, char, bool κ.λπ. ονομάζονται πρωτόγονοι τύποι δεδομένων. Μη πρωτόγονοι τύποι δεδομένων συμπεριλάβετε τάξη, enum, array, delegate κ.λπ.
Σε αυτό το σεμινάριο, θα εξετάσουμε τις διάφορες μεθόδους που προσφέρει το C # για πληκτρολόγηση.
Σιωπηρή μετατροπή
Η σιωπηρή μετατροπή είναι ο απλούστερος τύπος μετατροπής. Αυτός ο τύπος μετατροπής είναι ασφαλής τύπου και δεν συμβαίνει απώλεια δεδομένων κατά τη μετατροπή. Αυτές οι μετατροπές ασχολούνται με τη μετατροπή μιας παραγόμενης κλάσης σε βασική τάξη.
Για παράδειγμα, μπορούμε να χρησιμοποιήσουμε άμεσα τη σιωπηρή μετατροπή, εάν η τιμή που πρέπει να αποθηκευτεί σε μια άλλη μεταβλητή μπορεί να χωρέσει άμεσα χωρίς απώλεια δεδομένων. Ας υποθέσουμε ότι έχουμε μια τιμή 'ακέραιου' και θέλουμε να μεταδώσουμε αυτήν την τιμή σε μια 'μεγάλη'.
int i = 75; long j = i;
Άμεση μετατροπή
Σε σιωπηρή μετατροπή, είδαμε ότι μπορούμε να μετατρέψουμε άμεσα μια παράγωγη κλάση σε βασική κλάση χωρίς να χάσουμε δεδομένα, αλλά σε περίπτωση που υπάρχει πιθανότητα απώλειας δεδομένων, τότε ο μεταγλωττιστής θα απαιτήσει την εκτέλεση μιας ρητής μετατροπής.
Η ρητή μετατροπή ή μετάδοση είναι μια διαδικασία διαβίβασης πληροφοριών στον μεταγλωττιστή ότι το πρόγραμμα προσπαθεί να πραγματοποιήσει μετατροπή με γνώση πιθανής απώλειας δεδομένων.
Για παράδειγμα, αν μετατρέπουμε μια υψηλότερη αριθμητική τιμή σε χαμηλότερη.
πώς να χρησιμοποιήσετε το maven στην έκλειψη
double d = 75.25; int i; i = (int)d;
Τώρα, εάν εκτυπώσετε το 'i', θα διαπιστώσετε ότι θα εκτυπώσει το '75'. Όλα τα δεδομένα μετά το δεκαδικό θα χαθούν κατά τη μετατροπή.
Μετατροπή χρησιμοποιώντας διαφορετικές τάξεις βοηθού
Για τη μετατροπή μεταξύ διαφορετικών μη συμβατών τύπων, όπως η μετατροπή μιας συμβολοσειράς σε έναν αριθμό ή ένας πίνακας byte σε ακέραιο ή ακόμη και δεκαεξαδικό συμβολοσειρές σε άλλους αριθμητικούς τύπους, χρειαζόμαστε διαφορετική κατηγορία βοηθών, καθώς δεν είναι δυνατή η άμεση μετατροπή.
Ένας τύπος δεδομένων μπορεί να μετατραπεί σε έναν άλλο τύπο δεδομένων χρησιμοποιώντας μεθόδους που υπάρχουν στην κλάση μετατροπής ή χρησιμοποιώντας μια μέθοδο TryParse που είναι διαθέσιμη για τους διάφορους τύπους αριθμών. Το TryParse είναι πιο χρήσιμο αν μετατρέπουμε μια συμβολοσειρά στον αριθμό. Είναι αρκετά απλό και αποτελεσματικό.
int number = Int32.Parse(“123”);
Εδώ μετατρέψαμε μια συμβολοσειρά σε ακέραιο χρησιμοποιώντας parse.
Ας δούμε μια άλλη μέθοδο μετατροπής που είναι η μέθοδος μετατροπής.
Στατικές μέθοδοι που υπάρχουν μέσα στο Μετατροπή τάξης είναι αρκετά χρήσιμα για τη μετατροπή στον βασικό τύπο δεδομένων ή το αντίστροφο. Μερικοί από τους υποστηριζόμενους τύπους δεδομένων είναι Char, Boolean, Int32, int64, Double, Decimal, String, Int16 κ.λπ. Η κλάση μετατροπής υποστηρίζει επίσης μεθόδους για άλλες μετατροπές.
Μετατροπή σε συμβολοσειρά
Η μέθοδος Convert.ToString μετατρέπει έναν τύπο δεδομένων σε συμβολοσειρά. Στο παράδειγμα παρακάτω, μετατρέπουμε έναν ακέραιο τύπο δεδομένων σε έναν τύπο δεδομένων συμβολοσειράς.
int number = 75; string s = Convert.ToString(number);
Μη έγκυροCastException
Μερικές φορές είναι πιθανό ο μεταγλωττιστής να μην καταλαβαίνει εάν η λειτουργία που πραγματοποιήθηκε για τη μετατροπή ενός τύπου σε άλλο είναι έγκυρη ή όχι. Αυτό προκαλεί την αποτυχία του μεταγλωττιστή κατά τη διάρκεια του χρόνου εκτέλεσης. Μόλις αποτύχει η μετατροπή τύπου, θα εμφανιστεί μια Μη έγκυρη εξαίρεση.
Το InvalidCastException ρίχνεται κάθε φορά που δεν υποστηρίζεται ρητή εφαρμογή ή μετατροπή τύπου και από τους δύο τύπους δεδομένων που χρησιμοποιούνται για μετατροπή.
συμπέρασμα
Σε αυτό το σεμινάριο, μάθαμε τους τύπους μετατροπών και τον τρόπο εκτέλεσης μιας μετατροπής μεταξύ διαφορετικών τύπων δεδομένων. Σιωπηρή μετατροπή είναι η μετατροπή στην οποία μια παράγωγη κλάση μετατρέπεται σε βασική κλάση όπως int σε τύπο float.
Η ρητή μετατροπή είναι η μετατροπή που μπορεί να προκαλέσει απώλεια δεδομένων. Η ρητή μετατροπή μετατρέπει την βασική κλάση στην παράγωγη κλάση. Ίσως χρειαστεί να πραγματοποιήσουμε τη μετατροπή σε διαφορετικούς άλλους τύπους δεδομένων, για να το κάνουμε με τη βοήθεια της τάξης βοηθών. Η τάξη βοήθειας όπως 'Parse' και 'ConvertTo' προσφέρει διάφορους τρόπους για τη μετατροπή ενός τύπου δεδομένων σε έναν άλλο.
Μάθαμε επίσης για την εξαίρεση που θα μεταφέρει ο μεταγλωττιστής όταν δεν κατανοεί τη μετατροπή μεταξύ δύο τύπων.
=> Αναζητήστε τον εύκολο οδηγό εκπαίδευσης C # εδώ
Συνιστώμενη ανάγνωση
- C # Τύποι δεδομένων και μεταβλητές με παραδείγματα
- Τύποι δεδομένων C ++
- Πληκτρολογήστε Μετατροπές σε C ++
- Εξόρυξη δεδομένων: Διαδικασία, τεχνικές και σημαντικά ζητήματα στην ανάλυση δεδομένων
- Tutorial Data Mart - Τύποι, παραδείγματα & υλοποίηση του Data Mart
- Τύποι δοκιμών μετεγκατάστασης: Με σενάρια δοκιμής για κάθε τύπο
- 10+ καλύτερα εργαλεία συλλογής δεδομένων με στρατηγικές συλλογής δεδομένων
- Δυνατότητα συγκέντρωσης δεδομένων στο IBM Rational Quality Manager για διαχείριση δεδομένων δοκιμής