Προγραμματισμός

Πώς να χρησιμοποιήσετε τις εκφράσεις λάμδα στο C #

Οι εκφράσεις Lambda παρουσιάστηκαν για πρώτη φορά στο .NET 3.5, την ίδια στιγμή που το Language Integrated Query (LINQ) ήταν διαθέσιμο. Οι εκφράσεις λάμδα είναι σαν ανώνυμες μεθόδους αλλά με πολύ μεγαλύτερη ευελιξία. Όταν χρησιμοποιείτε μια έκφραση λάμδα, δεν χρειάζεται να καθορίσετε τον τύπο της εισόδου. Ως εκ τούτου, μια έκφραση λάμδα παρέχει έναν μικρότερο και καθαρότερο τρόπο αναπαράστασης ανώνυμων μεθόδων.

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

Δημιουργήστε ένα έργο εφαρμογής κονσόλας στο Visual Studio

Πρώτα απ 'όλα, ας δημιουργήσουμε ένα έργο εφαρμογής .NET Core κονσόλας στο Visual Studio. Υποθέτοντας ότι το Visual Studio 2019 είναι εγκατεστημένο στο σύστημά σας, ακολουθήστε τα βήματα που περιγράφονται παρακάτω για να δημιουργήσετε ένα νέο έργο εφαρμογής .NET Core κονσόλας στο Visual Studio.

  1. Εκκινήστε το Visual Studio IDE.
  2. Κάντε κλικ στο "Δημιουργία νέου έργου".
  3. Στο παράθυρο "Δημιουργία νέου έργου", επιλέξτε "Εφαρμογή κονσόλας (.NET Core)" από τη λίστα των προτύπων που εμφανίζονται.
  4. Κάντε κλικ στο Επόμενο.
  5. Στο παράθυρο "Διαμόρφωση του νέου έργου" που εμφανίζεται στη συνέχεια, καθορίστε το όνομα και την τοποθεσία για το νέο έργο.
  6. Κάντε κλικ στο Δημιουργία.

Ακολουθώντας αυτά τα βήματα θα πρέπει να οδηγήσει σε ένα νέο έργο εφαρμογής .NET Core κονσόλας στο Visual Studio 2019. Θα χρησιμοποιήσουμε αυτό το έργο για να δουλέψουμε με εκφράσεις C # lambda στις επόμενες ενότητες αυτού του άρθρου.

Ανατομία έκφρασης Λάμδα

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

Εδώ είναι η σύνταξη για τη χρήση εκφράσεων λάμδα στο C #.

(Παράμετροι εισαγωγής) => Μπλοκ έκφρασης ή δήλωσης

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

input => έκφραση;

Μια δήλωση lambda αποτελείται από μια είσοδο στην αριστερή πλευρά και ένα σύνολο δηλώσεων στη δεξιά πλευρά, όπως φαίνεται παρακάτω.

input => {δηλώσεις};

Παραδείγματα έκφρασης λάμδα στο C #

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

πληρεξούσιος (Συγγραφέας a) {return a.IsActive && a.NoOfBooksAuthored> 10; }

Η παραπάνω δήλωση μπορεί να μετατραπεί σε έκφραση λάμδα όπως φαίνεται στο απόσπασμα κώδικα που δίνεται παρακάτω.

(a) => {a.IsActive && a.NoOfBooksAuthored> 10; }

Στην παραπάνω δήλωση ένα είναι η παράμετρος και => είναι ο χειριστής λάμδα. Η ακόλουθη δήλωση είναι η έκφραση.

a.IsActive && a.NoOfBooksAuthored> 10;

Εδώ είναι ένα άλλο παράδειγμα μιας έκφρασης λάμδα που εμφανίζει τους περίεργους αριθμούς μεταξύ 1 και 9 στο παράθυρο της κονσόλας.

Λίστα ακέραιων αριθμών = νέα λίστα {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int num σε ακέραιους αριθμούς. Πού (n => n% 2 == 1). ToList ())

{

Console.WriteLine (αριθμός);

}

Εκφράσεις λάμδα με και χωρίς παραμέτρους

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

() => Console.WriteLine ("Αυτή είναι μια έκφραση λάμδα χωρίς καμία παράμετρο");

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

(a, numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;

Μπορείτε επίσης να καθορίσετε τον τύπο της παραμέτρου σε μια έκφραση lambda, όπως φαίνεται στο απόσπασμα κώδικα που δίνεται παρακάτω.

(a, int numberOfBooksAuthored) => a.NoOfBooksAuthored> = numberOfBooksAuthored;

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

(α, 10) =>

{

Console.WriteLine ("Αυτό είναι ένα παράδειγμα μιας έκφρασης λάμδα

με πολλές δηλώσεις ");

επιστροφή a.NoOfBooksAuthored> = 10;

}

Δήλωση λάμδα σε C #

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

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να επωφεληθείτε από μια δήλωση lambda για την εμφάνιση των ζυγών αριθμών μεταξύ 1 και 9 στο παράθυρο της κονσόλας.

int [] integers = νέο [] {1, 2, 3, 4, 5, 6, 7, 8, 9};

foreach (int i σε ακέραιοι. Πού (x =>

{

αν (x% 2 == 0)

επιστροφή αληθινή?

επιστροφή ψευδής?

 }

 ))

Console.WriteLine (i);

Οι εκφράσεις Lambda είναι ένα εξαιρετικό χαρακτηριστικό στο .NET και το .NET Core που παρέχουν έναν μικρότερο τρόπο αναπαράστασης ανώνυμων μεθόδων. Οι εκφράσεις λάμδα μπορούν να έχουν μηδενικές παραμέτρους ή μία ή περισσότερες. Μπορείτε ακόμη και να εκχωρήσετε εκφράσεις λάμδα σε εκπροσώπους Func, Action ή Predicate. Σε ένα μελλοντικό άρθρο εδώ, θα διερευνήσουμε αυτά και άλλα χαρακτηριστικά των εκφράσεων λάμδα. Θα διερευνήσουμε επίσης πώς μπορούμε να εργαστούμε με τις εκφράσεις lambda και το LINQ, καθώς και τα async lambdas.

Πώς να κάνετε περισσότερα στο C #:

  • Πότε να χρησιμοποιήσετε μια αφηρημένη τάξη εναντίον διεπαφής στο C #
  • Πώς να εργαστείτε με το AutoMapper στο C #
  • Πώς να χρησιμοποιήσετε τις εκφράσεις λάμδα στο C #
  • Πώς να συνεργαστείτε με τους αντιπροσώπους Action, Func και Predicate στο C #
  • Πώς να συνεργαστείτε με εκπροσώπους στο C #
  • Πώς να εφαρμόσετε έναν απλό καταγραφέα στο C #
  • Πώς να εργαστείτε με χαρακτηριστικά στο C #
  • Πώς να εργαστείτε με το log4net στο C #
  • Πώς να εφαρμόσετε το μοτίβο σχεδίασης αποθετηρίου στο C #
  • Πώς να εργαστείτε με προβληματισμό στο C #
  • Πώς να εργαστείτε με το σύστημα παρακολούθησης αρχείων στο C #
  • Πώς να εκτελέσετε τεμπέλης αρχικοποίηση στο C #
  • Πώς να εργαστείτε με το MSMQ στο C #
  • Πώς να εργαστείτε με μεθόδους επέκτασης στο C #
  • Πώς να μας εκφράσεις λάμδα στο C #
  • Πότε να χρησιμοποιήσετε την ευμετάβλητη λέξη-κλειδί στο C #
  • Πώς να χρησιμοποιήσετε τη λέξη-κλειδί απόδοσης στο C #
  • Πώς να εφαρμόσετε τον πολυμορφισμό στο C #
  • Πώς να δημιουργήσετε τον δικό σας προγραμματιστή εργασιών στο C #
  • Πώς να εργαστείτε με το RabbitMQ στο C #
  • Πώς να εργαστείτε με μια πλειάδα στο C #
  • Εξερεύνηση εικονικών και αφηρημένων μεθόδων στο C #