본문 바로가기
Programming/C#

C# 메서드 코드의 재사용과 모듈화

by Dev_카페인 2024. 6. 9.
반응형

[C#] 메서드 : 코드의 재사용과 모듈화

 

안녕하세요! 이번 포스트에서는 C# 메서드에 대해 자세히 알아보겠습니다.

메서드란 무엇인가요?

메서드는 프로그램에서 특정 작업을 수행하는 데 사용되는 코드 블록입니다. 메서드는 일련의 코드 명령문을 그룹화하여 재사용성을 높이고, 코드를 모듈화하여 유지보수성을 향상시킵니다.

메서드의 구성 요소

메서드 시그니처 (Method Signature)

메서드 시그니처는 메서드의 이름과 매개변수의 유형, 반환 유형으로 구성됩니다.

public int Add(int a, int b)
{
    return a + b;
}

위의 예시에서 Add는 메서드의 이름이고, int a, int b는 매개변수입니다. public int는 반환 유형을 나타냅니다.

매개변수 (Parameters)

메서드는 필요에 따라 매개변수를 받을 수 있습니다. 이 매개변수는 메서드 내에서 사용되는 값을 전달하는 데 사용됩니다.

반환 값 (Return Value)

일부 메서드는 값을 반환할 수 있습니다. 반환 유형은 메서드가 반환하는 데이터의 유형을 나타냅니다.

메서드의 종류

정적 메서드 (Static Methods)

정적 메서드는 특정 인스턴스에 속하지 않고 클래스 수준에서 호출됩니다. 주로 유틸리티 기능을 제공하거나 객체의 생성 없이 특정 작업을 수행할 때 사용됩니다.

public static int Add(int a, int b)
{
    return a + b;
}

인스턴스 메서드 (Instance Methods)

인스턴스 메서드는 특정 클래스의 인스턴스에 속하는 메서드입니다. 이러한 메서드는 클래스의 인스턴스를 생성한 후에만 호출할 수 있습니다.

public int Multiply(int a, int b)
{
    return a * b;
}

메서드의 활용

메서드를 사용하여 코드를 모듈화하고 재사용성을 높일 수 있습니다. 예를 들어, 아래의 CalculateTotalPrice 메서드는 주문된 제품의 가격을 계산하는데 사용될 수 있습니다.

public decimal CalculateTotalPrice(int quantity, decimal unitPrice)
{
    return quantity * unitPrice;
}

메서드 오버로딩 (Method Overloading)

메서드 오버로딩은 같은 이름의 메서드가 서로 다른 매개변수를 가질 수 있도록 하는 기능입니다. 이를 통해 메서드의 이름을 통일하면서도 다양한 유형의 입력을 처리할 수 있습니다.

예시: Add 메서드 오버로딩

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public double Add(double a, double b)
    {
        return a + b;
    }
}

위의 예시에서 Calculator 클래스에는 두 개의 Add 메서드가 있습니다. 하나는 int 형식의 매개변수를 받고, 다른 하나는 double 형식의 매개변수를 받습니다.

메서드 오버라이딩 (Method Overriding)

메서드 오버라이딩은 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 말합니다. 이를 통해 자식 클래스는 부모 클래스의 메서드를 자신의 필요에 맞게 다시 구현할 수 있습니다.

예시: Shape 클래스와 그의 파생 클래스들

public class Shape
{
    public virtual void Draw()
    {
        Console.WriteLine("도형을 그립니다.");
    }
}

public class Circle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("원을 그립니다.");
    }
}

public class Rectangle : Shape
{
    public override void Draw()
    {
        Console.WriteLine("사각형을 그립니다.");
    }
}

위의 예시에서 Shape 클래스의 Draw 메서드를 자식 클래스인 Circle과 Rectangle에서 각각 재정의하고 있습니다. 이를 통해 각 도형에 맞게 그리기 동작을 다르게 할 수 있습니다.

메서드 오버로딩과 오버라이딩의 차이

  • 메서드 오버로딩: 같은 이름의 메서드가 서로 다른 매개변수를 가질 수 있도록 합니다.
  • 메서드 오버라이딩: 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 재정의합니다.

 

마치며

이번 포스트에서는 C# 메서드의 기초를 다뤘습니다. 메서드를 효과적으로 사용하여 코드를 모듈화하고 재사용성을 높이는 것은 프로그래밍의 기본 원칙 중 하나입니다. 추가적인 질문이나 궁금한 점이 있다면 언제든지 댓글로 남겨주세요!

반응형