근거를 표현 관련 이미지

근거를 표현

대리자는 메서드에 대한 참조를 나타내는 형식입니다.

대리자의 인스턴스를 통해 메서드를 호출할 수 있습니다.

  • “대표하다”. 대신 처리한다는 의미입니다.
  • 대리자를 사용하여 다른 메서드를 호출할 수 있습니다.
  • 호출되는 메서드의 반환 유형은 매개변수의 수 및 데이터 유형과 일치해야 합니다.
  • 하나의 대리자 호출에서 여러 메서드를 호출할 수 있습니다.
  • 이벤트 처리기, 스레딩 등에 사용됩니다.

다음은 대리자 선언의 예입니다.

사람들 대표하다 int Calc(int a, int b);

대리자 선언은 호출되는 메서드의 반환 값 및 매개 변수와 일치해야 합니다.

공공 int 플러스(int a, int b)
{
a+b를 반환합니다.
}
Cal c = 더하기 기호; // 델리게이트 인스턴스 선언
c(10, 20); // 추가하다 메서드 호출

대리자를 사용하여 다른 메서드를 호출하는 간단한 예를 들어 보겠습니다.

쉬운 목차

예 1

1. 프로젝트를 생성합니다.

  • Windows Forms 애플리케이션(.NET 프레임워크)

2. 양식에 목록 상자와 버튼을 추가합니다.

3. 버튼에 다음 코드를 작성합니다.

using System;
//using System.Collections.Generic;
//using System.ComponentModel;
//using System.Data;
//using System.Drawing;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;

namespace Delegate_1
{
    public partial class Form1 : Form
    {
        delegate void MyCalc(int a, int b);

        public Form1()
        {
            InitializeComponent();
        }

        private void Plus(int a, int b)
        {
            listBox1.Items.Add(String.Format($"{a} + {b} = {a + b}"));
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MyCalc md = Plus;
            md(20, 10);
        }
    }
}


근거를 표현 관련 대표 이미지
대리자를 사용하여 메서드 호출

대리자는 여러 메서드를 하나로 결합하여 단일 호출에서 여러 메서드를 실행할 수 있습니다.

예 2

1. 위에서 만든 프로젝트에 버튼(button2)을 추가하고 코드를 추가합니다.

2. 완성된 코드는 다음과 같습니다.

using System;
//using System.Collections.Generic;
//using System.ComponentModel;
//using System.Data;
//using System.Drawing;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace Delegate_1
{
    public partial class Form1 : Form
    {
        delegate void MyCalc(int a, int b);

        public Form1()
        {
            InitializeComponent();
        }

        private void Plus(int a, int b)
        {
            listBox1.Items.Add(String.Format($"{a} + {b} = {a + b}"));
        }
        private void Minus(int a, int b)
        {
            listBox1.Items.Add(String.Format($"{a} - {b} = {a - b}"));
        }
        private void Division(int a, int b)
        {
            listBox1.Items.Add(String.Format($"{a} * {b} = {a * b}"));
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MyCalc md = Plus;
            md(20, 10);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            MyCalc md = Plus;
            md(20, 10);

            md = Minus;
            md(20, 10);

            md = (MyCalc)Delegate.Combine(
                   new MyCalc(Plus),
                   new MyCalc(Minus),
                   new MyCalc(Division));
            md(20, 10);
        }
    }
}


근거를 표현 관련 이미지
대리자를 사용하여 여러 메서드 호출

Similar Posts

  • 바게트

    오늘은 바게트에 대한 이야기를 해보려고 합니다. 프렌치 바게트는 긴 막대기로 빵의 식감이 단단해 무기 농담으로 사용할 수 있습니다. 1. 바게트의 기원 바게트라는 이름은 프랑스어로 막대기를 의미합니다. 길이가 60~70cm 정도여서 모양을 보고 막대기라고 부르기 시작했습니다. 바게트는 거의 맛없는 바게트라고 할 수 있습니다. 또한 프랑스인들은 식사대용으로 대표 버터를 먹고 싶어한다. 버터의 맛과 잘 어울리는 바게트라고 할 수…

  • 6개월 아기의 젖떼기 스케쥴 – 중기 이유식 빈도 및 시기

    6개월, 7개월 아기에게 이유식 분유는 언제, 얼마만큼 먹여야 하나요? 사실 아이마다 개인차가 매우 크기 때문에 정해진 규칙은 없지만, 도움이 되었기를 바라며 Lyokong이 타임라인을 공유하고자 합니다. 5개월부터 이유식을 시작했고 6개월부터 추단2를 먹기 시작했습니다. 베베쿡의 이유식 배달 서비스를 이용하고 있습니다. 소고기는 내가 직접 사온 우둔살을 입방체로 만들어 먹일 때 넣는다. 시간 양 07:00 분유 210ml 10:30 이유식…

  • 좋은 소식

    BravoInfo를 열었습니다. 이 블로그는 네이버와 구글을 주요 타깃으로 노출시키려 합니다. 잘 되길 바랍니다. 무슨 말을 해야 할지 모르겠지만 오늘 날씨는 미세먼지가 많이 끼어서 좀 유분스럽네요.나는 싸우고있다 해결할 수 있습니까?잘 지내길 바래

  • 피터 드러커의 전문성

    피터 드러커(Peter Drucker)는 경영학 분야의 대표적인 학자로, 저서 『전문가의 조건』에서 인적자원관리의 중요성을 강조하고, 인재관리 방법과 인재육성을 위한 전략을 제시했다. . 드러커는 이 책에서 전문가를 인적 자원이 아니라 “자기 자신을 관리할 수 있는 자기 통제의 자유를 가진 사람”으로 정의한다. 이러한 전문가들이 조직에서 중요한 역할을 할 때 그들은 조직이 성공할 수 있다고 주장합니다. 이 책에서 Drucker는 조직의…

  • 데니그리스 유기농 사과 식초 효능, 리뷰

    안녕하세요! 오늘은 데니그리 유기농 사과 식초 후기를 남깁니다.인터넷을 하다가 설탕을 먹기 전에 식초물을 마시면 혈당이 급격히 떨어질 수 있다는 글을 보았습니다.저는 빵과 단것을 좋아해서 빵이나 단것을 먹기전 식초물을 마시면 혈당상승을 최소화하고 살을 빼는데 도움이 됩니다! #식초다이어트 #데니그리스유기농사과식초 #식초스파이크 사과 식초는 자연 발효 식초라면 상관없습니다. 코스트코 사과식초와 다양한 사과식초가 있어서 쿠팡에서 판매하는 데니그리스 유기농 사과식초로 구매했습니다.#천연수정식초…

  • 근육 성장을 가속화하는 효과적인 방법

    안녕하세요. 운동 17년차 오둥입니다. 오늘의 이야기는 근육 성장에 관한 것입니다. 모든 스포츠인에게 가장 바람직한 방법은 근육을 빠르게 성장시키는 것입니다. 사실 근육증가를 위해서는 영양, 운동, 휴식 3요소의 균형을 맞추는 것이 가장 기본적인 방법이다. 하지만 오늘 보여드릴 내용은 조금 다른 방법미리 말씀드리겠습니다. 가장 효과적인 근육 강화 프로그램은 세트당 8~12회씩 최대 5세트까지 하는 것입니다. 물론 개인차가 있는 운동이지만…