C#

C# Delegate , 제네릭(Generic)

검은고양이개발자 2023. 11. 27. 16:12
반응형

C# Delegate에 대한 소개


C#에서 Delegate(델리게이트)는 메서드에 대한 참조를 나타내는 형식입니다. 이는 다른 언어에서의 함수 포인터와 유사한 역할을 합니다. Delegate를 사용하면 메서드를 변수에 할당하고 다른 메서드로 전달하거나, 이벤트 처리, 콜백 등의 기능을 쉽게 구현할 수 있습니다.

 

Delegate의 선언과 사용

// 델리게이트 선언
delegate void MyDelegate(string message);

class Program
{
    static void Main()
    {
        // 델리게이트 인스턴스 생성
        MyDelegate myDelegate = new MyDelegate(DisplayMessage);

        // 델리게이트를 통한 메서드 호출
        myDelegate("Hello, Delegate!");

        Console.ReadLine();
    }

    // 델리게이트와 호환되는 메서드
    static void DisplayMessage(string message)
    {
        Console.WriteLine(message);
    }
}

델리게이트의 활용

델리게이트는 다양한 상황에서 활용됩니다. 예를 들어, 이벤트 처리, 비동기 프로그래밍, 콜백 메서드 등에서 사용될 수 있습니다. 델리게이트는 다른 메서드와의 통신을 통해 유연하고 모듈화 된 코드를 작성하는 데 도움이 됩니다.

 

 

제네릭(Generic)에 대한 소개


C#에서 제네릭은 데이터 형식을 일반화하여 재사용성을 높이는 기능을 제공합니다. 제네릭은 컬렉션 클래스, 메서드, 클래스 등에서 사용될 수 있어 코드의 유연성과 안정성을 향상시킵니다.

제네릭의 선언과 사용

// 제네릭 클래스 선언
public class MyGenericClass<T>
{
    private T myField;

    public MyGenericClass(T value)
    {
        myField = value;
    }

    public T GetValue()
    {
        return myField;
    }
}

class Program
{
    static void Main()
    {
        // 제네릭 클래스 인스턴스 생성
        MyGenericClass<int> intInstance = new MyGenericClass<int>(42);
        MyGenericClass<string> stringInstance = new MyGenericClass<string>("Hello, Generic!");

        // 제네릭 메서드 호출
        int intValue = intInstance.GetValue();
        string stringValue = stringInstance.GetValue();

        Console.WriteLine(intValue);
        Console.WriteLine(stringValue);

        Console.ReadLine();
    }
}

제네릭의 활용

제네릭은 컬렉션에서 데이터 형식에 대한 안전한 작업을 가능하게 하며, 다양한 데이터 형식에서 재사용 가능한 코드를 작성하는 데 도움이 됩니다. 코드의 유연성을 높이고 중복을 줄이는 데 기여합니다.

이렇게 C#의 Delegate와 제네릭은 각각 메서드에 대한 참조와 데이터 형식의 일반화를 통해 프로그래밍에서의 유연성과 재사용성을 높이는 데 기여합니다.

반응형