산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C# 메서드 오버로딩 마스터하기: 개념, 예제, 모범 사례

C# 메서드 오버로딩 완벽 가이드

C#에서 매개변수 개수, 타입, 순서를 변경하여 메서드를 오버로딩하는 방법을 명확한 예제와 함께 익혀보세요.

C#에서 한 클래스 내에 이름이 같지만 매개변수 목록이 다른 여러 메서드를 정의할 수 있습니다. 이를 메서드 오버로딩(Method Overloading)이라 합니다. 예를 들어:

void display() { ... }
void display(int a) { ... }
float display(double a) { ... }
float display(int a, float b) { ... }

위 예제에서 display() 메서드는 오버로딩되었습니다. 이 메서드들은 이름은 같지만 전달받는 인수가 다릅니다.

참고: 오버로딩은 오직 매개변수 목록(개수, 타입, 순서)에 의해 결정됩니다. 반환 타입은 오버로딩 조건에 영향을 주지 않습니다.


1. 매개변수 개수 변경으로 오버로딩

매개변수의 개수가 다르면 오버로딩이 가능합니다.

void display(int a) { ... }
void display(int a, int b) { ... }

예제

using System;
namespace MethodOverload {
    class Program {
        // 매개변수 1개
        void display(int a) {
            Console.WriteLine("Arguments: " + a);
        }
        // 매개변수 2개
        void display(int a, int b) {
            Console.WriteLine("Arguments: " + a + " and " + b);
        }
        static void Main(string[] args) {
            Program p1 = new Program();
            p1.display(100);
            p1.display(100, 200);
            Console.ReadLine();
        }
    }
}

실행 결과

Arguments: 100
Arguments: 100 and 200

전달된 인수의 개수에 따라 적절한 오버로드가 호출됩니다.


2. 매개변수 타입 변경으로 오버로딩

매개변수 개수가 같아도 타입이 다르면 오버로딩됩니다.

void display(int a) { ... }
void display(string b) { ... }

예제

using System;
namespace MethodOverload {
    class Program {
        // int 매개변수
        void display(int a) {
            Console.WriteLine("int type: " + a);
        }
        // string 매개변수
        void display(string b) {
            Console.WriteLine("string type: " + b);
        }
        static void Main(string[] args) {
            Program p1 = new Program();
            p1.display(100);
            p1.display("Programiz");
            Console.ReadLine();
        }
    }
}

실행 결과

int type: 100
string type: Programiz

3. 매개변수 순서 변경으로 오버로딩

매개변수의 타입과 개수가 동일하더라도 순서를 바꾸면 별도의 오버로드가 됩니다.

void display(int a, string b) { ... }
void display(string b, int a) { ... }

예제

using System;
namespace MethodOverload {
    class Program {
        // int, string 순서
        void display(int a, string b) {
            Console.WriteLine("int: " + a);
            Console.WriteLine("string: " + b);
        }
        // string, int 순서
        void display(string b, int a) {
            Console.WriteLine("string: " + b);
            Console.WriteLine("int: " + a);
        }
        static void Main(string[] args) {
            Program p1 = new Program();
            p1.display(100, "Programming");
            p1.display("Programiz", 400);
            Console.ReadLine();
        }
    }
}

실행 결과

int: 100
string: Programming
string: Programiz
int: 400

C 언어

  1. C# 추상 클래스와 추상 메서드: 실전 가이드
  2. C# partial 클래스와 partial 메서드 이해하기
  3. C# sealed 클래스와 메서드: 상속/오버라이딩 제한으로 코드 안전성·성능 높이기
  4. C# 생성자 오버로딩 마스터하기: 유연한 클래스 설계
  5. Python 연산자 오버로딩 마스터하기: 실전 가이드
  6. Verilog 태스크 이해: 함수와의 차이점, 문법, 활용법
  7. Verilog 디스플레이 태스크 마스터하기: 효율적인 디버깅 및 로깅
  8. C# 메서드 완벽 가이드: 정의, 호출, 재귀, 매개변수 전달 방식
  9. C# 연산자 오버로딩 마스터하기: 사용자 정의 타입을 위한 연산자 재정의
  10. C# 무명 메서드(Anonymous Methods): 대리자 사용 간소화