>백엔드 개발 >PHP 튜토리얼 >[C# 튜토리얼] C# 익명 메서드

[C# 튜토리얼] C# 익명 메서드

黄舟
黄舟원래의
2016-12-24 13:11:54983검색

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)!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.