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

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

Βελτιωμένες εκφράσεις διακόπτη

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

Εξετάστε το παρακάτω απόσπασμα κώδικα.

var αποτέλεσμα = αντικ διακόπτης
{
ενθ Εγώ πότε i > 0 => "Θετικός",
ενθ Εγώ πότε i < 0 => "Αρνητικός",
_ => "Μηδέν"
};

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

instagram viewer
θετικός, αρνητικός, ή μηδέν. Στο C# 12, μπορείτε να απλοποιήσετε αυτόν τον κώδικα ακόμη περισσότερο χρησιμοποιώντας τη νέα σύνταξη αντιστοίχισης προτύπων:

var αποτέλεσμα = αντικ διακόπτης
{
> 0 => "Θετικός",
< 0 => "Αρνητικός",
_ => "Μηδέν"
};

Αυτή η σύνταξη σάς επιτρέπει να παραλείψετε το πότε λέξη-κλειδί και χρησιμοποιήστε σχεσιακούς τελεστές απευθείας στην έκφραση διακόπτη.

Πρωτοβάθμιοι Κατασκευαστές για Τάξεις και Κατασκευές

Τώρα μπορείτε να δημιουργήσετε κύριους κατασκευαστές σε οποιοδήποτε τάξη ή struct (μια ελαφριά εναλλακτική κατηγορία). Χρησιμοποιώντας πρωτεύοντες κατασκευαστές, μπορείτε να προσθέσετε παραμέτρους στη δήλωση κλάσης και να χρησιμοποιήσετε αυτές τις τιμές μέσα στο σώμα της κλάσης.

Το C# 9 εισήγαγε πρωτεύοντες κατασκευαστές ως μέρος της σύνταξης θέσης για εγγραφές. Το C# 12 τα επεκτείνει σε όλες τις δομές και τις κλάσεις.

Μπορείτε να βάλετε τις παραμέτρους μετά το όνομα τύπου σε αγκύλες όπως φαίνεται παρακάτω:

δημόσιο τάξη Μαθητης σχολειου(ενθ ταυτότητα, σειρά όνομα, IEnumerable<δεκαδικός> βαθμοί)
{
δημόσιοΜαθητης σχολειου(ενθ ταυτότητα, σειρά όνομα): Αυτό(id, name, Numerable. Άδειο<δεκαδικός>()) { }
δημόσιοενθ Id => id;
δημόσιοσειρά Ονομα { παίρνω; σειρά; } = όνομα. Τακτοποίηση();
δημόσιοδεκαδικός ΣΔΣ => βαθμοί. Οποιος()? βαθμοί. Μέση τιμή(): 4.0Μ;
}

Οι παράμετροι ενός πρωτεύοντος κατασκευαστή είναι σε εμβέλεια σε ολόκληρο το σώμα του τύπου δήλωσης. Μπορείτε να ρυθμίσετε ιδιότητες ή πεδία ή μπορείτε επίσης να τα χρησιμοποιήσετε σε μεθόδους ή τοπικές συναρτήσεις ως μεταβλητές. Μπορείτε να παρέχετε αυτές τις παραμέτρους και σε έναν κατασκευαστή βάσης.

Βελτιώσεις παρεμβολής χορδών

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

ενθ i = 5;
σειρά έξοδος = $"Η τιμή του i είναι {Εγώ}, και το τετράγωνό του είναι {i*i}.";
Κονσόλα. WriteLine (έξοδος);

Αυτός ο κωδικός εκτυπώνει "Η τιμή του i είναι 5 και το τετράγωνό του είναι 25".

Χρήση οδηγιών για πρόσθετους τύπους

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

Ακολουθούν μερικά παραδείγματα:

χρησιμοποιώντας Μέτρηση = (σειρά Μονάδες, ενθ Απόσταση);
χρησιμοποιώντας UnitsInt = ενθ?;
Παράδειγμα χρήσης ψευδωνύμων:
δημόσιοκενόςΥπολογισμός(Μέτρηση μέτρησης)
{
// Σώμα μεθόδου
}

Βελτιώσεις έκφρασης λάμδα

Το C# 12 εξουσιοδοτεί τις εκφράσεις λάμδα επιτρέποντάς σας να ορίσετε τις προεπιλεγμένες τιμές για τις παραμέτρους. Η σύνταξη είναι πανομοιότυπη με αυτή άλλων προεπιλεγμένων παραμέτρων:

Για παράδειγμα, (int incrementTo = 5) => incrementTo + 1 ορίζει μια προεπιλεγμένη τιμή 5 για την παράμετρο incrementTo, την οποία θα χρησιμοποιήσει η κλήση λάμδα εάν δεν της μεταβιβάσετε μια τιμή.

var incrementWithDefault = (ενθ incrementTo = 5) => incrementTo + 1;
incrementWithDefault(); // 6
incrementWithDefault(9); // 10

Εκτός από αυτό, πολλές άλλες βελτιώσεις ήρθαν στις εκφράσεις λάμδα για να τις κάνουν πιο αποτελεσματικές.

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

  • Τώρα μπορείτε να δημιουργήσετε πιο σύνθετες εκφράσεις στις συναρτήσεις λάμδα.
  • Τώρα μπορείτε να μετατρέψετε τις εκφράσεις λάμδα σε δέντρα έκφρασης που απλοποιούν πολύπλοκα ερωτήματα και βελτιστοποιούν την απόδοση.

Ασύγχρονες ροές

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

αναμένωγια κάθε (var είδος σεGetItemsAsync())
{
Κονσόλα. WriteLine (αντικείμενο.αξία);
}

C# 12: Επανάσταση στον κώδικα με συναρπαστικά νέα χαρακτηριστικά

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

Το C# 12 είναι έτοιμο να προσφέρει ένα σημαντικό άλμα προς τα εμπρός, επιτρέποντάς σας να γράψετε πιο εκφραστικό, αποτελεσματικό και ισχυρό κώδικα.