이번에는 콜백메소드!!
오늘 안으로..;; 다 끝낼 수 있을까 모르지만 달려봅니다.
이전에 쓴 게시물의 delegate에 대한 진가는
현재 게시물에서 쓰게 될 콜백메소드에서 진가를 발휘하게 된다고합니다!
콜백이라는 개념 자체는 객체지향 프로그래밍에서 자주 쓰이는단어이기에 필수필수!!
콜백의 원리에 대해서 책에서 자세히 예시를 들었는데,
카페에서 점원에게 커피를 주문했고, 커피를 받기까지 기다리는 과정
1번째
완성되었는지 주문자가 직접 찾아가 커피 완성되었나요?? 묻는 것과
2번째
점원이 호출기를 울려서 커피가 완성되었다는 것을 알리는 것
이 두가지 예시를 들었을 때 가장 효율적으로 느껴지는 게 무엇인가요?
바로 2번이지요.
이러한 게 바로 콜백의 원리라고 합니다.
**콜백메소드는 델리게이트를 통해 구현된다.
콜백메소드를 통해서 델리게이트 호출
델리게이트에서 원하는 메소드가 호출되는 것.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CallbackMethod
{
internal class Program
{
delegate void CalcDelegate(int x, int y);
static void Callback(int x, int y, CalcDelegate dele)
{
dele(x, y);
}
static void Plus(int x, int y) { Console.WriteLine(x + y); }
static void Minus(int x, int y) { Console.WriteLine(x - y); }
static void Multiple(int x, int y) { Console.WriteLine(x * y); }
static void Divide(int x, int y) { Console.WriteLine(x / y); }
static void Main(string[] args)
{
CalcDelegate plus = Plus;
CalcDelegate minus = Minus;
CalcDelegate multiple = Multiple;
CalcDelegate divide = Divide;
Callback(20, 10, plus);
Callback(20, 10, minus);
Callback(20, 10, multiple);
Callback(20, 10, divide);
}
}
}
[C#] String 클래스 + 문자열 관리 메소드 표 제공 (0) | 2024.10.27 |
---|---|
[C#] 이벤트 (0) | 2024.10.27 |
[C#] 엉?델리만쥬말고 델리게이트가 뭐야? Delegate 대리자?! (0) | 2024.10.27 |
[C#] Interface에 대해서 (0) | 2024.10.27 |
[C#]NuGet패키지관리 Barcodelib설치해서 바코드 이미지 불러오기 만들어보기 _참조(FoxLearn) (2) | 2024.10.27 |