Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C# Anonymous Methods: Delegate Gebruik Vereenvoudigen

Wat zijn Anonymous Methods?

We bespraken dat delegates gebruikt worden om methoden te refereren die dezelfde handtekening hebben als de delegate. Met andere woorden: je kunt een methode die door een delegate gerefereerd kan worden, aanroepen via dat delegate-object.

Anonymous methods bieden een techniek om een codeblok als delegate-parameter door te geven. Anonymous methods zijn methoden zonder naam, alleen de body.

Je hoeft het retouurtpe niet op te geven in een anonymous method; dit wordt afgeleid van de return-statement binnen de methodebody.

Een Anonymous Method Schrijven

Anonymous methods worden gedeclareerd bij het aanmaken van de delegate-instantie, met het delegate sleutelwoord. Bijvoorbeeld:

delegate void NumberChanger(int n);
...
NumberChanger nc = delegate(int x) {
    Console.WriteLine("Anonymous Method: {0}", x);
};

Het codeblok Console.WriteLine("Anonymous Method: {0}", x); is de body van de anonymous method.

De delegate kan zowel met anonymous methods als met genamede methoden worden aangeroepen, op dezelfde manier: door de methodeparameters aan het delegate-object door te geven.

Bijvoorbeeld:

nc(10);

Voorbeeld

Het volgende voorbeeld demonstreert het concept:

using System;
delegate void NumberChanger(int n);
namespace DelegateAppl {
    class TestDelegate {
        static int num = 10;
        public static void AddNum(int p) {
            num += p;
            Console.WriteLine("Named Method: {0}", num);
        }
        public static void MultNum(int q) {
            num *= q;
            Console.WriteLine("Named Method: {0}", num);
        }
        public static int getNum() { return num; }
        static void Main(string[] args) {
            // Delegate instantie aanmaken met anonymous method
            NumberChanger nc = delegate(int x) {
                Console.WriteLine("Anonymous Method: {0}", x);
            };
            // Delegate aanroepen met anonymous method
            nc(10);
            // Delegate instantiëren met named method
            nc = new NumberChanger(AddNum);
            // Delegate aanroepen met named method
            nc(5);
            // Delegate instantiëren met andere named method
            nc = new NumberChanger(MultNum);
            // Delegate aanroepen met named method
            nc(2);
            Console.ReadKey();
        }
    }
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, produceert dit het volgende resultaat:

Anonymous Method: 10
Named Method: 15
Named Method: 30

C Taal

  1. Precisie bewerking: Bewezen technieken voor het bereiken van werkstucknauwkeurigheid
  2. EPA Methode 21: Uitgebreid Lekdetectie & Reparatieprotocol
  3. C# Abstract Classes & Methods: Een Praktische Gids
  4. C# Partial Classes en Methods: Een Praktische Gids
  5. C# Sealed Classes en Methods: Wanneer en Hoe Te Gebruiken
  6. Method overloading in C#: concepten, voorbeelden en best practices
  7. C# Methodes: Definiëren, Aanroepen en Gebruiken van Functies
  8. C# Delegates Begrijpen: Handleiding voor Functiereferenties en Events
  9. Python Lambda Functies: Een praktische gids voor anonieme functies
  10. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  11. Java 8 Default Methods: Interfaces verbeteren & backward compatibility