[C#] 익명 메소드
C#에서는 익명 메소드라는 것이 있는데
말그대로 이름이 없는 메소드이다.
어떻게 이름이 없는 메소드가 있을까?
생각할 수 있지만 델리게이트를 통해
선언하고 사용될 수 있다. (밑의 예제 참고)
위의 궁금증보다 사실 이런 메소드를
대체 어디다 쓰려는 것일까? 라는 의문이 드는데
익명 메소드는 람다식에서 아주 유용하게
쓰인다고 하니 람다식을 공부하면서 좀 더
깊게 공부해보는 시간을 가지도록 하겠다.
delegate int Calculate (int a , int b);
public static void Main(){
Calculate Calc;
Calc = delegate ( int a, int b ){
return a + b;
}
Console.WriteLine("3+4 : {0}", Calc(3,4);
}
익명 메소드는 delegate 키워드를 이용하여 선언한다.
익명 메소드는 자신을 참조할 델리게이트의 형식과 동일해야 한다.
익명 메소드는 매개 변수의 형식, 개수까지도 동일해야 한다.
델리게이트가 참조할 메소드를 넘겨야 할 일이 생겼는데,
이 메소드가 두 번 다시 사용할 일이 없다고 판단 되면 그 때
사용하는 것이 익명 메소드란다. 매번 사용되고 복잡한
메소드라면 익명 메소드를 사용하지 않는 것이 바람직할 것이다.
(아직은 익명 메소드에 대해 감이 잘 잡히지 않는다.)
아래의 익명 메소드 예제를 보면서 포스팅을 마치도록 하겠다.
이렇듯 익명 메소드는 구현부가 항상 따라다니기 때문에
여러번 사용될 메소드라면 꽤나 번거로울 것이다. 그리고
복잡한 내용의 메소드라면 가독성을 해칠 수 있기 때문에
이 경우에도 사용하지 않는 것이 좋을 것이다. 이 익명 메소드는
후에 공부할 람다식에서 다시 자세하게 알아보도록 하겠다.
'C#, 유니티' 카테고리의 다른 글
[C#] string 그리고 가비지 컬렉션 (0) | 2017.03.29 |
---|---|
[C#] 이벤트(event) 와 델리게이트(delegate) (1) | 2017.03.08 |
[C#] 일반화 델리게이트 (0) | 2017.03.05 |
[C#] 델리게이트 (delegate) (0) | 2017.03.05 |
[C#] 인덱서 (Indexer) (0) | 2017.03.02 |