* 값이 아닌! 매서드 참조 = 매서드 불러오기=매서드 호출 반환 형식
- 반환 타입, 매개 변수 타입과 갯수가 같아야 함

1. 대리자 선언
delegate int Mydelegate(int a, int b);

2. 대리자 인스턴스 생성
Callback = new Mydelegate(매서드 명);
(호출할 매서드 생성 스킵)
- 매서드의 매개 변수로 호출할 매서드를 불러오게 함. 매서드를 호출하는 반환 형식이라고 생각하면 됨

3. 대리자 호출
Callback(7,3);

> delegate int Calculate(int a, int b);
int 타입을 반환하는 매개 변수 2개짜리 매서드를 호출하는 Calculate라는 이름의 대리자

..데이터 시트는 하나인데 이렇게(매서드1) 저렇게(매서드2) 가공해야할 때 쓰겠네.. 이름은 하나인데 별명은 서너 개~

대(명작 모나)리자의 몸체는 하나인데 부르는 사람이 아빠, 엄마, 언니일 때 각기 부르는 별명이 다르다.

  • Main
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Delegate_Nkckname
{
    internal class Program
    {
        // 대리자 선언
        delegate string Mydelegate(string s);

        // 호출할 매서드 생성
        static string Father(string s)
        {
            return s;
        }

        static string Mather(string s)
        {
            return s;
        }
        static string Sister(string s)
        {
            return s;
        }


        static void Main(string[] args)
        {

            // 변수 선언
            Mydelegate Callback;


            Console.WriteLine("♪대리자는 하나인데~♪ 사용은 여러 개~♪\n");

            // 대리자 인스턴스 생성 및 사용
            Callback = new Mydelegate(Father);
            Console.WriteLine($"♪아빠가 부를 때는 {Callback("강아지")}~♪");

            Callback = new Mydelegate(Mather);
            Console.WriteLine($"♪엄마가 부를 때는 {Callback("다람쥐")}~♪");

            Callback = new Mydelegate(Sister);
            Console.WriteLine($"♪언니가 부를 때는 {Callback("개..야, 물 떠 와!")}~♪\n");

        }
    }
}

+ Recent posts