Heim  >  Artikel  >  Backend-Entwicklung  >  Wie deklariere und instanziiere ich Delegaten in C#?

Wie deklariere und instanziiere ich Delegaten in C#?

WBOY
WBOYnach vorne
2023-09-04 20:01:051340Durchsuche

Wie deklariere und instanziiere ich Delegaten in C#?

C#-Delegaten ähneln Funktionszeigern in C oder C++. Ein Delegat ist eine Referenztypvariable, die einen Verweis auf eine Methode enthält. Referenzen können zur Laufzeit geändert werden.

Syntax zum Deklarieren eines Delegaten -

delegate <return type> <delegate-name> <parameter list>

Jetzt sehen wir uns an, wie man einen Delegaten in C# instanziiert.

Nachdem Sie den Delegate-Typ deklariert haben, müssen Sie das neue Schlüsselwort verwenden, um das Delegate-Objekt zu erstellen und es einer bestimmten Methode zuzuordnen. Wenn Sie einen Delegaten erstellen, werden die an den neuen Ausdruck übergebenen Parameter wie ein Methodenaufruf geschrieben, jedoch ohne die Parameter der Methode.

public delegate void printString(string s);
...
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);

Hier ist ein Beispiel für die Deklaration und Instanziierung eines Delegaten in C# –

Beispiel

Live-Demonstration

using System;

delegate int NumberChanger(int n);
namespace DelegateAppl {

   class TestDelegate {
      static int num = 10;

      public static int AddNum(int p) {
         num += p;
         return num;
      }

      public static int MultNum(int q) {
         num *= q;
         return num;
      }

      public static int getNum() {
         return num;
      }

      static void Main(string[] args) {
         //create delegate instances
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);

         //calling the methods using the delegate objects
         nc1(25);
         Console.WriteLine("Value of Num: {0}", getNum());
         nc2(5);
         Console.WriteLine("Value of Num: {0}", getNum());
         Console.ReadKey();
      }
   }
}

Ausgabe

Value of Num: 35
Value of Num: 175

Das obige ist der detaillierte Inhalt vonWie deklariere und instanziiere ich Delegaten in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen