[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 키워드를 이용하여 선언한다.

익명 메소드는 자신을 참조할 델리게이트의 형식과 동일해야 한다.

익명 메소드는 매개 변수의 형식, 개수까지도 동일해야 한다.


델리게이트가 참조할 메소드를 넘겨야 할 일이 생겼는데,

이 메소드가 두 번 다시 사용할 일이 없다고 판단 되면 그 때

사용하는 것이 익명 메소드란다. 매번 사용되고 복잡한

메소드라면 익명 메소드를 사용하지 않는 것이 바람직할 것이다.

(아직은 익명 메소드에 대해 감이 잘 잡히지 않는다.)




아래의 익명 메소드 예제를 보면서 포스팅을 마치도록 하겠다.




이렇듯 익명 메소드는 구현부가 항상 따라다니기 때문에

여러번 사용될 메소드라면 꽤나 번거로울 것이다. 그리고

복잡한 내용의 메소드라면 가독성을 해칠 수 있기 때문에

이 경우에도 사용하지 않는 것이 좋을 것이다. 이 익명 메소드는

후에 공부할 람다식에서 다시 자세하게 알아보도록 하겠다.


+ Recent posts