.net 3.5 führte Linq- und Lambda-Ausdrücke ein, sodass die Erstellung von Delegaten einfacher und eleganter geworden ist.
Nach der Einführung von Lambda-Ausdrücken besteht keine Notwendigkeit mehr, anonyme Methoden zu verwenden, wodurch die Erstellung von Delegaten einfacher und eleganter wird. Wenn der Lambda-Ausdruck zuerst eingeführt wird, gibt es tatsächlich keine anonyme Methode.
Lambda-Ausdrücke werden in C# als „arg-list => expr-body“ geschrieben. Die linke Seite des „=>“-Symbols ist die Parameterliste des Ausdrucks und die rechte Seite ist der Ausdruck Körper (Körper). Die Parameterliste kann 0 bis mehr Parameter enthalten, getrennt durch Kommas.
1 namespace DelegateDemo 2 { 3 //声明委托 4 public delegate void MyDel(string arg1, string arg2); 5 6 class Program 7 { 8 static void Main(string[] args) 9 {10 //.net 3.5中的委托11 12 //创建委托,使用lambda表达式代替匿名方法13 MyDel myDel = (string arg1, string arg2) =>14 {15 Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));16 };17 18 //调用委托19 myDel("aaa", "bbb");20 21 Console.ReadKey();22 }23 }24 }
weg, da der Compiler den Typ des Delegatenparameters aus der Delegatendeklaration kennen kann (diese Funktion ist Daher können wir den Parametertyp weglassen, sodass der Code wie folgt vereinfacht wird.
1 //创建委托,使用lambda表达式代替匿名方法2 MyDel myDel = (arg1, arg2) =>3 {4 Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));5 };
Hinweis: Wenn nur ein Parameter vorhanden ist, können Sie die Klammern um den Parametertyp auch weglassen.
Da Lambda-Ausdrücke zulassen, dass der Ausdruckskörper eine Anweisung oder ein Anweisungsblock ist, können Sie den Anweisungsblock durch einen ersetzen, wenn der Ausdruckskörper nur eine Anweisung enthält Erklärung zur weiteren Vereinfachung. Der folgende Code:
1 //创建委托,使用lambda表达式代替匿名方法2 MyDel myDel = (arg1, arg2) => Console.WriteLine(string.Format("arg1:{0},arg2:{1}", arg1, arg2));
Das obige ist der detaillierte Inhalt vonInformationen zu Delegateninstanzen in .net 3.5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!