반응형
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와 제네릭은 각각 메서드에 대한 참조와 데이터 형식의 일반화를 통해 프로그래밍에서의 유연성과 재사용성을 높이는 데 기여합니다.
반응형
'C#' 카테고리의 다른 글
ASP.NET Core 서비스 라이프타임 종류 및 특징 (0) | 2023.12.14 |
---|---|
Interop 라이브러리 (0) | 2023.12.12 |
C# 라이브러리 만들기 (1) | 2023.11.28 |
C# 데이터 형식 (정수형, 실수형, 문자형, 부울린형) (0) | 2023.11.27 |
C# .NET 프레임 워크 && Entity Framework (0) | 2023.11.20 |