..
Ο όρος null είναι μια ενδιαφέρουσα ιδέα στον κόσμο του προγραμματισμού και δεν είναι συνώνυμο με το «μηδέν» ή «κενό», αλλά «ως απροσδιόριστη». Γίνεται λόγος για nullabilità (nullability) να αναφερθώ στην ικανότητα ενός τύπου δεδομένων για να δεχτεί και να χειρίζονται τις μηδενικές τιμές.
Κάθε προγραμματιστής συχνά κατά τη διάρκεια της ανάπτυξης των εφαρμογών τους είναι να έχουν να κάνουν με τη λεγόμενη τύπους τιμή δεδομένων (τύποι αξία) ως int, δίκλινα, bool, char, και datetime. Αυτοί οι τύποι δεδομένων είναι βασικός, αλλά έχουν ένα πράγμα είναι λίγο περίεργη σε ορισμένες περιπτώσεις, ότι δεν μπορεί να είναι μηδενική.
Ευτυχώς, C # και το NET Framework μας παρέχει ένα πολύ χρήσιμο εργαλείο:. Nullable τύπους δεδομένων. Αυτοί οι τύποι δεδομένων που μπορούν να χρησιμοποιηθούν σε οποιοδήποτε σημείο του κώδικα όπου υπάρχει ανάγκη να έχουμε μια μεταβλητή που μπορεί να έχει αξίες, αλλά μπορεί επίσης να έχει μηδενική αξία.
Αν ο κωδικός της εφαρμογής μας γράφουμε κάτι σαν
boolTest bool = null? dataTest datetime = null?λαμβάνετε σφάλματα κατά τη μεταγλώττιση. Ωστόσο, παρουσιάζει συχνά την ανάγκη να θέσει μια σειρά, μια boolean ή σε ημερομηνία που έχει μηδενική αξία και σε αυτές τις περιπτώσεις έρχονται για να διασώσει nullable τύπους μας δεδομένα. Για να κάνετε έναν τύπο δεδομένων σε C # nullable όλα όσα χρειάζεται να κάνετε είναι να βάλει ένα ερωτηματικό (;) Στο τέλος της κάθε τιμή τύπου δεδομένων.
Ως εκ τούτου, εάν έχουμε ξαναγράψει τις δύο προηγούμενες μεταβλητές με τον εξής τρόπο δεν θα έχουμε περισσότερα σφάλματα κατά τη μεταγλώττιση
bool; boolTest = null? datetime; dataTest = null?
Κάθε μεταβλητή του Nullable τύπου εκθέτει μια ιδιότητα που ονομάζεται Value, η οποία σας επιτρέπει να πάρετε ή να ρυθμίσετε την αξία τους. Μια άλλη χρήσιμη ιδιοκτησία αυτών των τύπων δεδομένων είναι HasValue, η οποία επιστρέφει την Boolean τιμή true αν η μεταβλητή στην ερώτηση έχει μια μη μηδενική, ψευδής διαφορετικά.
Είναι πάντα δυνατό να μετατρέψετε ένα είδος τιμής σε ένα είδος nullable
dato1 bool = true? bool; dato2 = dato1αλλά προσέξτε ότι για να κάνουν την αντίστροφη μετατροπή της είναι αναγκαία για να ρίχνει το nullable τύπου
dato1 = (bool) dato2?
Όταν βάζετε το ερώτημα για να ακολουθήσει μια τιμή τύπου δεδομένων, όπως int; Ή δεκαδικό;, Βασικά ο compiler που μεταφράζεται σε struct Nullable Nullable <int> ή <decimal>.
Για να το ελέγξετε μόνο να προσθέσω κώδικα μας για μια μεταβλητή ως Nullable <DateTime> και να βάλετε ένα breakpoint στην αλληλογραφία του.
Η εκτέλεση του κώδικα και παρατηρώντας το παράθυρο ρολόι για να εμφανιστεί ως System.DateTime τύπο δεδομένων;.
| |
CSS (Μάθημα)
Σχεδίαση και Προσβασιμότητα, σύμφωνα με το W3C CSS και XHTML. Ξεκινώντας από 29 €. |
| |
Excel (ebook)
Δημιουργία υπολογιστικών φύλλων και τον υπολογισμό. Μόλις 25 €. |
| |
MySQL (Μάθημα)
Διαχείριση του open-source βάση δεδομένων. Από 39 €. |