[c#] 다형성과 익명 메서드

다형성(Polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 같은 이름의 메서드나 함수가 다른 클래스나 객체에서 서로 다른 동작을 할 수 있는 기능을 말합니다. C#에서는 이 다형성을 구현하기 위해 인터페이스, 추상 클래스, 가상 메서드 등의 방법을 사용합니다.

인터페이스를 통한 다형성

인터페이스는 일종의 계약(Contract)으로, 구현체는 반드시 인터페이스에 정의된 메서드를 구현해야 합니다. 이를 이용하여 여러 클래스가 같은 인터페이스를 구현함으로써 다형성을 구현할 수 있습니다.

interface IShape
{
    void Draw();
}

class Circle : IShape
{
    public void Draw()
    {
        Console.WriteLine("Drawing Circle");
    }
}

class Square : IShape
{
    public void Draw()
    {
        Console.WriteLine("Drawing Square");
    }
}

IShape shape1 = new Circle();
IShape shape2 = new Square();
shape1.Draw(); // "Drawing Circle" 출력
shape2.Draw(); // "Drawing Square" 출력

익명 메서드

C# 2.0부터 도입된 익명 메서드(Anonymous Method)는 메서드에 이름을 명시하지 않고 구현할 수 있는 기능을 제공합니다. 주로 델리게이트(Delegate)와 함께 사용되며, 런타임 중에 동적으로 메서드를 생성하여 사용할 수 있습니다.

Action<string> printMessage = delegate (string message)
{
    Console.WriteLine(message);
};

printMessage("Hello, World!"); // "Hello, World!" 출력

익명 메서드는 간단한 이벤트 핸들러나 비동기 작업 등에서 유용하게 활용될 수 있습니다.

C#에서의 다형성과 익명 메서드는 코드의 유연성과 재사용성을 높이는데 도움을 줍니다. 객체 지향 프로그래밍을 하며 이러한 다형성과 익명 메서드를 적절히 활용하여 코드를 작성하는 것은 중요합니다.