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# - Anonieme methoden

We hebben besproken dat afgevaardigden worden gebruikt om te verwijzen naar methoden die dezelfde handtekening hebben als die van de afgevaardigde. Met andere woorden, u kunt een methode aanroepen waarnaar een gedelegeerde kan verwijzen met behulp van dat gedelegeerde object.

Anonieme methoden een techniek bieden om een ​​codeblok door te geven als een gedelegeerde parameter. Anonieme methoden zijn de methoden zonder naam, alleen de body.

U hoeft het retourtype niet in een anonieme methode op te geven; het wordt afgeleid uit de return-instructie in de hoofdtekst van de methode.

Een anonieme methode schrijven

Anonieme methoden worden gedeclareerd bij het maken van de gedelegeerde instantie, met een delegate trefwoord. 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 hoofdtekst van de anonieme methode.

De gedelegeerde kan zowel met anonieme methoden als met benoemde methoden op dezelfde manier worden aangeroepen, d.w.z. door de methodeparameters door te geven aan het gedelegeerde object.

Bijvoorbeeld,

nc(10);

Voorbeeld

Het volgende voorbeeld demonstreert het concept −

Live demo
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) {
         //create delegate instances using anonymous method
         NumberChanger nc = delegate(int x) {
            Console.WriteLine("Anonymous Method: {0}", x);
         };
         
         //calling the delegate using the anonymous method 
         nc(10);
         
         //instantiating the delegate using the named methods 
         nc =  new NumberChanger(AddNum);
         
         //calling the delegate using the named methods 
         nc(5);
         
         //instantiating the delegate using another named methods 
         nc =  new NumberChanger(MultNum);
         
         //calling the delegate using the named methods 
         nc(2);
         Console.ReadKey();
      }
   }
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

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

C Taal

  1. C# abstracte klasse en methode
  2. C# Gedeeltelijke klasse en gedeeltelijke methode
  3. C# verzegelde klasse en methode
  4. Overbelasting van C#-methode
  5. Python Anonieme/Lambda-functie
  6. Java anonieme klasse
  7. Java 8 - Standaardmethoden
  8. C# - Methoden
  9. C# - Afgevaardigden
  10. Wat is EPA-methode 21?
  11. Gebruikelijke methoden om werkstuknauwkeurigheid te verkrijgen bij het machinaal bewerken (2)