C# 익명 메서드
대리자는 동일한 레이블이 있는 메서드를 참조하는 데 사용된다는 점을 이미 언급했습니다. 즉, 대리자 개체를 사용하여 대리자가 참조할 수 있는 메서드를 호출할 수 있습니다.
익명 메서드는 코드 블록을 위임 매개변수로 전달하는 기술을 제공합니다. 익명 메서드는 이름은 없고 본문만 있는 메서드입니다.
익명 메소드에서는 반환 유형을 지정할 필요가 없으며 메소드 본문 내의 return 문에서 유추됩니다.
익명 메서드 작성 구문
익명 메서드는 대리자 키워드를 사용하여 대리자 인스턴스를 생성하여 선언합니다. 예:
delegate void NumberChanger(int n); ... NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); };
코드 블록 Console.WriteLine("Anonymous Method: {0}", x);은 익명 메서드의 본문입니다.
대리자는 익명 메서드나 명명된 메서드를 통해, 즉 메서드 인수를 대리자 개체에 전달하여 호출할 수 있습니다.
예:
nc(10);
예
다음 예는 익명 메서드의 개념을 보여줍니다.
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) { // 使用匿名方法创建委托实例 NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); }; // 使用匿名方法调用委托 nc(10); // 使用命名方法实例化委托 nc = new NumberChanger(AddNum); // 使用命名方法调用委托 nc(5); // 使用另一个命名方法实例化委托 nc = new NumberChanger(MultNum); // 使用命名方法调用委托 nc(2); Console.ReadKey(); } } }
위 코드를 컴파일하면 실행하면 다음과 같은 결과가 나옵니다.
Anonymous Method: 10 Named Method: 15 Named Method: 30
위는 [c# 튜토리얼] C# 익명 메서드의 내용입니다. 자세한 내용은 PHP 중국어 홈페이지(www. php.cn)!