Τι είναι ο Null Coalescing Operator στο C#

Ti Einai O Null Coalescing Operator Sto C



ΝΤΟ# είναι μια ευρέως χρησιμοποιούμενη γλώσσα προγραμματισμού που έχει σχεδιαστεί για τη δημιουργία αποτελεσματικών και ισχυρών εφαρμογών για διάφορες πλατφόρμες. Η γλώσσα έχει πολλά προηγμένα χαρακτηριστικά, συμπεριλαμβανομένου του μηδενικός τελεστής συγχώνευσης , το οποίο βοηθά στην απλοποίηση σύνθετου κώδικα παρέχοντας μια συμπαγή σύνταξη για τη διαχείριση μηδενικών τιμών. Αυτός ο χειριστής έχει γίνει δημοφιλής μεταξύ των προγραμματιστών που αναζητούν μια απλή μέθοδο χειρισμού μηδενικό αξίες στα έργα τους.

Αυτό το άρθρο θα αναφερθεί λεπτομερώς στο μηδενικός τελεστής συγχώνευσης .







Τι είναι ένας χειριστής Null Coalescing στο C#

Στη C#, το σύμβολο για το μηδενικός τελεστής συγχώνευσης είναι ?? . Εάν μια μεταβλητή είναι μηδενική, χρησιμοποιείται για να της δώσει μια προεπιλεγμένη τιμή.



Για παράδειγμα, αν έχουμε μια μεταβλητή Χ που μπορεί να είναι null και θέλουμε να του εκχωρήσουμε μια προεπιλεγμένη τιμή 10 εάν είναι null, μπορούμε να χρησιμοποιήσουμε το μηδενικός τελεστής συγχώνευσης ως εξής:



int y = x ?? 10





Αυτή η δήλωση θα εκχωρήσει την τιμή του 10 στο y αν το x είναι μηδενικό, διαφορετικά, θα πάρει την τιμή του x.

Θα επιστρέψει την τιμή του αριστερού τελεστή εάν δεν είναι null. Ο δεξιόστροφος τελεστής εξετάζεται και το αποτέλεσμα επιστρέφεται εάν είναι μηδενικό. Εναλλακτικά, εάν ο αριστερός τελεστής αξιολογείται ως μη μηδενικός, δεν αξιολογεί τον τελεστή του δεξιού του.



Ο παραδοσιακός τρόπος για να γράψετε τον κώδικα χωρίς το μηδενικός τελεστής συγχώνευσης είναι:

αν ( το αποτέλεσμα είναι μηδενικό )

ΕΠΙΣΤΡΟΦΗ νέα λίστα < Πρόσωπο > ( ) ;

ΕΠΙΣΤΡΟΦΗ αποτέλεσμα;

Μπορούμε να το συμπυκνώσουμε σε μια γραμμή που περιέχει τόσο την μη μηδενική προεπιλεγμένη τιμή όσο και τον μηδενικό έλεγχο χρησιμοποιώντας το μηδενικός τελεστής συγχώνευσης :

ΕΠΙΣΤΡΟΦΗ αποτέλεσμα?? νέα λίστα < Πρόσωπο > ( ) ;

Μερικά σημαντικά σημεία που πρέπει να θυμάστε μηδενικός τελεστής συγχώνευσης είναι:

  • Μια μεταβλητή πρέπει να είναι ο αριστερός τελεστής του ?? χειριστής.
  • Ο αριστερός τελεστής ??= του τελεστή δεν μπορεί να είναι μη μηδενικός τύπος.
  • Ο τελεστής μηδενικής συνένωσης δεν μπορεί να υπερφορτωθεί.
  • Ο τελεστής μηδενικής συνένωσης είναι δεξιός συσχετιστικός. Αυτό σημαίνει ότι μια έκφραση όπως a ??= b ??= c θα αξιολογηθεί ως ??= (b ??= c).

Χρήσεις του τελεστή Null Coalescing

Οι χρήσεις του μηδενικός τελεστής συγχώνευσης είναι:

1: Παροχή προεπιλεγμένων τιμών

Όταν εργάζεστε με μηδενικούς τύπους, εάν η τιμή είναι μηδενική, μπορείτε να χρησιμοποιήσετε το μηδενικός τελεστής συγχώνευσης για να παράσχετε μια προεπιλεγμένη τιμή αντί να εισάγετε μια εξαίρεση.

χρησιμοποιώντας το σύστημα.

Πρόγραμμα δημόσιας τάξης
{
δημόσιο στατικό κενό Κύριο ( )
{
int; nullableValue = null;
int value = nullableValue ?? 10 ;
Κονσόλα.WriteLine ( 'Η τιμή είναι:' + αξία ) ;
}
}

Στο παραπάνω παράδειγμα, ορίζουμε τον ακέραιο nullableValue μεταβλητή και δώστε της τιμή μηδέν. ο μηδενικός τελεστής συγχώνευσης Στη συνέχεια χρησιμοποιείται για να παρέχει στη μεταβλητή τιμή μια προεπιλεγμένη τιμή 10 εάν το nullableValue είναι null. Στη συνέχεια, η τιμή εμφανίζεται στην κονσόλα.

2: Αποφυγή εξαιρέσεων μηδενικής αναφοράς

Οι μηδενικές τιμές ενδέχεται να οδηγήσουν σε μηδενικές εξαιρέσεις αναφοράς όταν εργάζεστε με εξελιγμένες δομές δεδομένων όπως αντικείμενα και πίνακες. Αυτές οι εξαιρέσεις μπορούν να αποφευχθούν χρησιμοποιώντας το μηδενικός τελεστής συγχώνευσης , το οποίο παρέχει προεπιλεγμένες τιμές.

χρησιμοποιώντας το σύστημα.

δημόσια τάξη myClass
{
δημόσια συμβολοσειρά Όνομα { παίρνω; σειρά ; }
δημόσιο αναγνωριστικό int { παίρνω; σειρά ; }
}
Πρόγραμμα δημόσιας τάξης
{
δημόσιο στατικό κενό Κύριο ( )
{
myClass άτομο = μηδενικό;
όνομα συμβολοσειράς = πρόσωπο;.Όνομα ?? 'Αγνωστος' ;
ενθ ταυτότητα = άτομο;.ID ?? 0 ;
Κονσόλα.WriteLine ( 'Ονομα: ' + όνομα ) ;
Κονσόλα.WriteLine ( 'ID:' + ταυτότητα ) ;
}
}

Ονομα και ταυτότητα είναι ιδιότητες του η τάξη μου τάξη στον παραπάνω κώδικα. Για την ασφαλή πρόσβαση στο Ονομα και ταυτότητα ιδιότητες του αντικειμένου άτομο και οι προεπιλεγμένες τιμές προσφοράς, εάν είναι μηδενικές, ορίζει μια μεταβλητή προσώπου σε null και στη συνέχεια χρησιμοποιεί τον τελεστή υπό όρους null (?.) και το μηδενικός τελεστής συγχώνευσης (??). Στη συνέχεια, η κονσόλα εκτυπώνεται με το όνομα και τις τιμές αναγνωριστικού.

3: Κατάργηση περιττών συνθηκών if-else

Μπορείτε επίσης να χρησιμοποιήσετε τον τελεστή null coalescing για να κάνετε τον κώδικά σας πιο συνοπτικό και ευανάγνωστο αφαιρώντας την ανάγκη για περιττές αν-άλλως προϋποθέσεις .

Για παράδειγμα:

χρησιμοποιώντας το σύστημα.

Παράδειγμα χώρου ονομάτων
{
τάξη myClass
{
στατικό κενό Κύριο ( σειρά [ ] args )
{
int; nullableValue = null;
int αξία?
αν ( nullableValue ! = μηδενικό )
{
value = nullableValue.Value;
}
αλλού
{
αξία = 10 ;
}
Κονσόλα.WriteLine ( 'Η τιμή είναι:' + αξία ) ;
}
}
}

Στον παραπάνω κώδικα, ο τελεστής μηδενικής συγχώνευσης ?? χρησιμοποιείται για την εκχώρηση της τιμής του nullableValue να εκτιμήσει. Αν nullableValue δεν είναι null, τότε η τιμή θα έχει την ίδια τιμή με nullableValue . Αν nullableValue είναι null, τότε η τιμή θα έχει την τιμή 10. Το αν-αλλιώς η συνθήκη δεν απαιτείται πλέον και ο κώδικας είναι πλέον συντομότερος και πιο κατανοητός.

συμπέρασμα

ο μηδενικός τελεστής συγχώνευσης στο C# είναι ένα ισχυρό χαρακτηριστικό που απλοποιεί τον τρόπο με τον οποίο οι προγραμματιστές χειρίζονται τις μηδενικές τιμές στα έργα τους. Αυτός ο τελεστής παρέχει μια συμπαγή, αποτελεσματική και ευέλικτη σύνταξη για την εκχώρηση προεπιλεγμένων τιμών σε μεταβλητές που μπορεί να είναι μηδενικές. Με τη χρήση του μηδενικός τελεστής συγχώνευσης , οι προγραμματιστές μπορούν να γράφουν πιο ευανάγνωστο, διατηρήσιμο και αποτελεσματικό κώδικα, εξοικονομώντας χρόνο και προσπάθεια στη διαδικασία ανάπτυξης.