C# 델리게이트 파라미터

mohadang·2023년 4월 23일
0

C#

목록 보기
5/5
post-thumbnail

EX) Add 메서드를 구현한 객체를 받는 함수 구현

interface IAdd
{
  int Add(int a, int b);
}
class Foo : public IAdd
{
  public override int Add(int a, int b)
  {
    return a + b;
  }
}
public static class Calc
{
  public static int Add(int a, int b, IAdd adder)
  {
    return adder.Add(a, b);
  }
}

IAdd, Foo와 같은 새로운 타입을 구현해야 한다.
하지만 델리게이트를 사용하면

public static class Calc
{
  public static int Add(int a, int b, Func<int, int, int> adder)
  {
    return adder(a, b);
  }
}

...

Example.Add(10, 20, (int a, int b) => a + b);

개선 1

public static class Calc
{
  public static int Add(int a, int b, Func<int, int, int> adder) 
  	=> adder(a, b);
}

...

Example.Add(10, 20, (int a, int b) => a + b);

개선 2

public static class Calc
{
  public static T Add<T>(T a, T b, Func<T, T, T> adder) 
  	=> adder(a, b);
}

...

Example.Add(10, 20, (a, b) => a + b);
profile
mohadang

0개의 댓글