C#/개인공부

Func 대리자 & Action 대리자 복습

Bueong_E 2023. 1. 15. 20:31
반응형
SMALL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using static reviewAll01.Earth;
//using static reviewAll01.Earth; // 2022기능으로 알아서 클래스를 가져오더라

namespace reviewAll01
{
    class App
    {
        int sum;
        int sum1;
     
        public App()
        {
            //func 문 사용 
            Func<int ,int, int> func1 = (x, y) => x + y;   // func 대리자 선언 후 매개변수 + 식 대입 ("," 빼먹지 말것)
            Console.WriteLine(func1(1, 2));                // func 대리자에 매개변수 기입

            Func<int, int> func2 = (x) => Calculater(x);           // func 대리자 선언 후 메서드 대입 
            int result = func2(8);
            Console.WriteLine(result);  

            Action hello = () => Console.WriteLine("hello");    
            hello();

            Action test = () =>
            {
                Sum();                      // 반환 값이 없는 action  이지만 메서드를 실행시키면 메서드에서 필드에 넣은 값은 살아 있구나.
                sum1 = sum  + 10;           // 반환값이 있는 메서드의 반환값은  action 대리자와 상관 없이 값을 반환할수 있구나
            };
            test();
            Console.WriteLine(sum);         //10
            Console.WriteLine(sum1);        //20

        }
        int Calculater(int x)
        {
            int sum = x * 2;
            return sum;

                   
        }
        int Sum()
        {
            sum = 5 * 2;
            return sum;
        }
    }
    
}
반응형
LIST