S_pot

C#_delegate2:익명메서드, 람다식 본문

C#

C#_delegate2:익명메서드, 람다식

S_pot 2021. 6. 14. 10:46
namespace _210614_002
{
    public delegate void SMART();
    public delegate int SMART2(int iNum);

    class Program
    {
        static void Main(string[] args)
        {
            SMART A;    
            
            A = () => // delegate () 와 같다.
            {
                Console.WriteLine("임시로 만든 메소드");
            };
            A();         
        }

        static void Main4(string[] args)
        {
            SMART2 A;
            A = Test2;
            int iNum = A(100);
            Console.WriteLine(iNum);

            A = (int iNumber) =>    // 람다식
            {
                Console.WriteLine("익명 혹은 무명 메서드테스트");
                return iNumber + 2;
            };
            iNum = A(100);
            Console.WriteLine(iNum);
        }

        static void Main3(string[] args)
        {
            SMART2 A;
            A = Test2;
            int iNum = A(100);
            Console.WriteLine(iNum);

            A = delegate (int iNumber)
            {
                Console.WriteLine("익명 혹은 무명 메서드테스트");
                return iNumber + 2;                
            };
            iNum = A(100);
            Console.WriteLine(iNum);
        }

        static void Main2(string[] args)
        {
            SMART2 A;
            A = Test2;
            int iNum = A(100);
            Console.WriteLine(iNum);
        }
            // delegate를 활용해서 익명메서드 생성
        static void Main1(string[] args)
        {
            SMART A;
            A = Test1;
            A();

            A = delegate ()
            {
                Console.WriteLine("임시로 만든 메소드");
            };
            A();

            A = delegate ()
            {
                Console.WriteLine("익명 메서드 테스트");
            };
            A();
        }

        static void Test1()
        {
            Console.WriteLine("Test1");
        }

        static int Test2(int iNum)
        {
            Console.WriteLine($"Test2 : {iNum}");
            return iNum + 1;
        }
    }
}