라벨이 선택적 매개변수인 게시물 표시

C# 메서드 오버로딩 규칙: 반환형·선택적 매개변수 오류까지

이미지
C# 메서드 오버로딩은 같은 이름의 메서드를 매개변수의 개수나 형식이 다르게 여러 개 선언하는 기능이에요. 호출하는 쪽에서는 하나의 일관된 이름을 쓰고, 컴파일러가 전달된 인수에 가장 잘 맞는 메서드를 선택합니다. 다만 반환 형식만 바꾼 메서드는 오버로딩할 수 없습니다. 핵심 규칙 메서드 이름이 같아도 매개변수의 개수, 형식 또는 순서가 달라야 합니다. 반환 형식, 매개변수 이름, string 과 string? 의 차이만으로는 서로 다른 오버로드가 되지 않습니다. 메서드 오버로딩은 왜 사용할까요? 같은 목적의 작업을 입력 형식마다 다른 이름으로 만들면 호출부가 불필요하게 복잡해집니다. 예를 들어 로그를 남길 때 WriteTextLog , WriteNumberLog 처럼 이름을 나누기보다 Write 라는 이름을 유지하고 문자열과 숫자용 오버로드를 제공할 수 있어요. 사용자는 “기록한다”는 동작만 기억하면 됩니다. public static class LogWriter { public static void Write(string message) { Console.WriteLine(message); } public static void Write(int code, string message) { Console.WriteLine($"[{code}] {message}"); } public static void Write(Exception exception) { Console.WriteLine(exception.Message); } } LogWriter.Write("서버 시작"); LogWriter.Write(503, "서비스 점검 중"); 첫 호출은 string 하나를 받는 메서드가, 두 번째 호출은 int 와 string 을 받는 메서드가 선택됩니다. 선택은 실행 중이 아니라 컴파일할 때...