[c#] 제네릭을 활용한 속성과 이벤트
C#에서 제네릭을 사용하면 코드를 더 유연하고 재사용 가능하게 만들 수 있습니다. 이번 블로그에서는 제네릭을 활용하여 속성과 이벤트를 만드는 방법에 대해 알아보겠습니다.
제네릭 속성 (Generic Property)
제네릭을 사용하여 클래스나 인터페이스의 속성을 정의할 수 있습니다.
public class GenericProperty<T>
{
private T _value;
public T Value
{
get { return _value; }
set { _value = value; }
}
}
위의 예제에서는 GenericProperty
클래스를 제네릭으로 선언하고, Value
속성을 제네릭 타입으로 정의하고 있습니다. 이렇게 하면 GenericProperty
인스턴스를 생성할 때에 원하는 타입을 지정하여 사용할 수 있습니다.
GenericProperty<int> intProperty = new GenericProperty<int>();
intProperty.Value = 10;
GenericProperty<string> stringProperty = new GenericProperty<string>();
stringProperty.Value = "Hello, World!";
제네릭 이벤트 (Generic Event)
마찬가지로 제네릭을 사용하여 이벤트를 정의할 수 있습니다.
public class EventPublisher<T>
{
public event EventHandler<T> DataReceived;
public void OnDataReceived(T data)
{
DataReceived?.Invoke(this, data);
}
}
위의 예제에서는 EventPublisher
클래스를 제네릭으로 선언하고, DataReceived
이벤트를 제네릭 타입으로 정의하고 있습니다. 이렇게 하면 이벤트를 발생시킬 때에도 원하는 타입을 사용할 수 있습니다.
EventPublisher<string> stringPublisher = new EventPublisher<string>();
stringPublisher.DataReceived += (sender, data) => Console.WriteLine($"Data received: {data}");
stringPublisher.OnDataReceived("Some data");
이렇게 제네릭을 활용하면 타입에 관계없이 강력하고 유연한 속성과 이벤트를 만들 수 있습니다.
제네릭을 사용하여 속성과 이벤트를 정의하는 방법에 대해 알아보았습니다. 제네릭을 적절히 활용하면 코드의 재사용성을 높일 수 있으며, 보다 유연하고 강력한 코드를 작성할 수 있습니다.
이상으로 C#에서 제네릭을 활용한 속성과 이벤트에 대해 알아보았습니다.