본문 바로가기
C#/C# Common

Anonymous Methods and Lambda Expression

by doublerabbits 2022. 8. 30.

Anonymous Methods and Lambda Expression

 

아래 기술된 코드는 실행 결과가 모두 같다.

익명 함수에서 람다식으로 변형되는 과정이다.

 

 

방식 1

using System;

namespace AnonymousMethodAndLambda
{
    internal class Program
    {
        delegate void Operation(int num);

        static void Main(string[] args)
        {
            Operation op = Double;
            op(2);

            Console.ReadKey();
        }

        static void Double(int num)
        {
            Console.WriteLine("{0} x 2 = {1}", num, num * 2);
        }
    }
}

 

 

 

방식 2

using System;

namespace AnonymousMethodAndLambda
{
    internal class Program
    {
        delegate void Operation(int num);

        static void Main(string[] args)
        {
            Operation op = delegate(int num) { Console.WriteLine("{0} x 2 = {1}", num, num * 2); };
            op(2);

            Console.ReadKey();
        }
    }
}

 

 

방식 3

using System;

namespace AnonymousMethodAndLambda
{
    internal class Program
    {
        delegate int Operation(int num);

        static void Main(string[] args)
        {
            Operation op = delegate(int num) 
            {
                return num * 2;
            };
            int value = op(2);
            Console.WriteLine(value);

            Console.ReadKey();
        }
    }
}

 

 

방식 4 - Lambda

  • Action : 반환값이 없는 경우
  • Func : 반환값이 있는 경우(마지막 인자가 반환값이다.
using System;

namespace AnonymousMethodAndLambda
{
    class Program
    {
        static void Main(string[] args)
        {
            Action<int> op = num => { Console.WriteLine("{0} x 2 = {1}", num, num * 2); };
            op(2);

            Func<int, int> Double = x => { return x * 2; };
            Console.WriteLine(Double(2));

            Console.ReadKey();
        }
    }
}

 

 

 

https://www.youtube.com/watch?v=qmdziLz51w4&t=7s 

 

'C# > C# Common' 카테고리의 다른 글

LINQ  (0) 2022.09.01
Event  (0) 2022.08.30
Generic  (0) 2022.08.16
가변 인수  (0) 2022.06.30
Async & Sync 비동기 프로그래밍  (0) 2022.06.22