레퍼런스(Reference)
영어 단어로 "참조" 또는 "참고"를 의미한다.
컴퓨터 과학에서 레퍼런스는 어떤 값이나 리소스(예: 변수, 객체, 메서드)를 가리키는 포인터나 주소 같은 개념으로 사용한다.
레퍼런스는 그 리소스를 직접 사용하지 않고도 가리키고, 필요할 때 사용할 수 있게 한다.
그러면 메서드 레퍼런스에서 "레퍼런스(Reference)"란,
메서드를 직접 호출하지 않고도 그 메서드를 가리킬 수 있는 방법을 의미한다.
즉, 메서드를 이름으로 참조(reference)하여, 그 메서드를 언제든지 호출할 수 있도록 준비해 두는 것이다.
메서드 레퍼런스는 C#에서 메서드를 직접 참조할 수 있는 기능을 의미한다.
이를 통해 메서드를 인수로 전달하거나, 대리자(Delegate)또는 이벤트 핸들러에서 사용될 메서드를 지정할 수 있다.
public class Example
{
public static void PrintMessage(string message)
{
Console.WriteLine(message);
}
public void Run()
{
// 메서드 레퍼런스
Action<string> printAction = PrintMessage;
printAction("Hello, Method Refrence!");
}
}
해당 예제에서는
- 'PrintMessage'는 'string' 인수를 받아 출력하는 정적 메서드(static method)다.
- 'Action' 대리자를 사용하여 'PrintMessage' 메서드를 참조하고 있다.
- 'printAction' 대리자를 호출하면 'printMessage' 가 실행된다.
메서드 레퍼런스가 중요한 이유
- 유연성: 메서드를 인수로 전달하거나, 여러 곳에서 재사용할 수 있다.
- 지연 호출: 메서드를 즉시 실행하지 않고, 특정 이벤트나 조건이 발생할 때 호출 할 수 있다.
- 예를 들면, 이벤트 핸들러에 메서드를 등록해 두고, 나중에 이벤트가 발생하면 해당 메서드를 실행하는 방식이다.
- 가독성: 메서드를 다른 함수나 대리자에 전달할 때, 람다식이나 익명 메서드 대신 기존의 메서드를 참조할 수 있으므로 코드가 간결해진다.
핵심 포인트
메서드 레퍼런스에서 레퍼런스는 말 그대로 메서드를 "참조"한다는 의미다.
직접 메서드를 호출하지 않고도 메서드를 가리키고, 필요할 때 해당 메서드를 호출할 수 있게 해주는 기능
이는 특히 콜백 함수, 이벤트 처리, 대리자 패턴 등에서 매우 유용하다.