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

Πώς να συνεργαστείτε με τους αντιπροσώπους Action, Func και Predicate στο C #

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

Τι είναι οι εκπρόσωποι Func και Action; Πώς μπορούν να χρησιμοποιηθούν;

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

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

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

Εκπρόσωποι δράσης προγραμματισμού στο C #

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

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

Δράση

Η ακόλουθη λίστα κωδικών δείχνει πώς μπορείτε να χρησιμοποιήσετε το Action delegate. Αυτό το απόσπασμα κώδικα όταν εκτελείται θα εκτυπώσει τη λέξη "Γεια σας !!!" στο παράθυρο της κονσόλας.

static void Main (συμβολοσειρά [] args)

        {

Ενέργεια δράσης = νέα δράση (Οθόνη);

δράση ("Γεια σας !!!");

Κονσόλα. Διαβάστε ();

        }

Στατική κενή οθόνη (μήνυμα συμβολοσειράς)

        {

Console.WriteLine (μήνυμα);

        }

Προγραμματισμός εκπροσώπων Func στο C #

Ας καταλάβουμε τώρα πώς μπορούμε να συνεργαστούμε με τους εκπροσώπους της Func στο C #. Εδώ είναι η σύνταξη για έναν εκπρόσωπο Func.

Func

Το παρακάτω απόσπασμα κώδικα δείχνει πώς μπορείτε να χρησιμοποιήσετε έναν εκπρόσωπο Func στο C #. Εκτυπώνει την αξία της Hra (υπολογίζεται ως 40% του βασικού μισθού). Ο βασικός μισθός μεταβιβάζεται σε αυτό ως επιχείρημα.

static void Main (συμβολοσειρά [] args)

        {

Func func = νέο Func (CalculateHra);

Console.WriteLine (func (50000));

Κονσόλα. Διαβάστε ();

        }

στατικό διπλό CalculateHra (int basic)

        {

επιστροφή (διπλό) (βασικό * .4);

        }

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

Προγραμματισμός εκπροσώπων Predicate στο C #

Ένας εκπρόσωπος Predicate χρησιμοποιείται συνήθως για την αναζήτηση στοιχείων σε μια συλλογή ή σε ένα σύνολο δεδομένων. Εδώ είναι η σύνταξη για έναν εκπρόσωπο Predicate.

Κατηγορούμενο

Σημειώστε ότι το Predicate είναι βασικά ισοδύναμο με το Func.

Εξετάστε την ακόλουθη κατηγορία οντοτήτων που ονομάζεται Πελάτης.

πελάτης τάξης

    {

δημόσιο int Id {get; σειρά; }

δημόσια συμβολοσειρά FirstName {get; σειρά; }

δημόσια συμβολοσειρά LastName {get; σειρά; }

δημόσια συμβολοσειρά Διεύθυνση {get; σειρά; }

δημόσια συμβολοσειρά City {get; σειρά; }

δημόσια συμβολοσειρά State {get; σειρά; }

δημόσια συμβολοσειρά Χώρα {get; σειρά; }

    }

Στη συνέχεια, δημιουργήστε μια λίστα πελατών και αποθηκεύστε αντικείμενα τύπου Πελάτη σε αυτήν.

 Λίστα custList = νέα λίστα ();

custList.Add (νέος πελάτης {Id = 1, FirstName = "Joydip", LastName = "Kanjilal", State = "Telengana", City = "Hyderabad", Διεύθυνση = "Begumpet", Country = "India"});

custList.Add (νέος πελάτης {Id = 2, FirstName = "Steve", LastName = "Jones", State = "OA", City = "New York", Διεύθυνση = "Lake Avenue", Country = "US"}) ;

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

static void Main (συμβολοσειρά [] args)

        {

Λίστα custList = νέα λίστα ();

custList.Add (νέος πελάτης {Id = 1, FirstName = "Joydip", LastName = "Kanjilal", State = "Telengana", City = "Hyderabad", Διεύθυνση = "Begumpet", Country = "India"});

custList.Add (νέος πελάτης {Id = 2, FirstName = "Steve", LastName = "Jones", State = "OA", City = "New York", Διεύθυνση = "Lake Avenue", Country = "US"}) ;

Predicate hydCustomers = x => x.Id == 1;

Πελάτης πελάτη = custList.Find (hydCustomers);

Console.WriteLine (customer.FirstName);

Κονσόλα. Διαβάστε ();

        }

Όταν εκτελείται το παραπάνω απόσπασμα κώδικα, το όνομα "Joydip" θα εμφανίζεται στο παράθυρο της κονσόλας.

Πώς να κάνετε περισσότερα στο 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 #