본문 바로가기

전체 글34

Delegate를 이용한 콜백 표현 안녕하세요? 이번 글에서는 함수 포인터와 유사한 개념으로, 메서드를 참조할 수 있는 'Delegate'를 이용하여 콜백을 표현하는 방법에 대해 알아보겠습니다. 콜백(callback)을 구현하여 비동기적인 이벤트 처리나 다른 객체로부터의 알림을 받을 수도 있습니다. 1. Delegate의 개념 C# 에서 Delegate는 함수 포인터와 유사한 개념으로 메서드를 참조할 수 있는 형식이라 할 수 있습니다. 또한 다른 언어의 함수포인터와도 비슷한 역할을 하며, 메서드 시그니처가 일치하는 모든 메서드를 참조할 수 있습니다. 2. 콜백(callback) 함수와의 관계 Delegate를 이용하면 다른 객체나 시스템으로부터의 알림을 받는 콜백 함수를 구현할 수 있습니다. 그리고 Delegate를 통해 콜백 함수를 지정.. 2024. 4. 12.
virtual 메서드의 overriding과 Interface의 구현을 구분하자 프로그램 개발 시 클래스 간의 관계를 정의할 경우, Interface의 구현과 가상(virtual) 메서드의 재정의(overriding)는 종종 혼동되는 개념입니다. 이 둘의 차이점과 각각의 사용 사례를 구분하여 살펴보겠습니다. 1. Interface의 구현 인터페이스(Interface)는 클래스가 특정 기능을 지원한다는 것을 나타내는 역할을 합니다. 클래스가 Interface를 구현하면 해당 Interface가 정의한 모든 메서드를 반드시 구현해야 합니다. 이것은 클래스 간의 강력한 결합을 피하고, 유연성과 확장성을 제공합니다. interface IPlayable { void Play(); } class MusicPlayer : IPlayable { public void Play() { Console... 2024. 4. 7.
[C#] 상속과 Interface 구현, 어떤 것을 선택해야 할까? 프로그래밍을 하며 클래스간의 관계를 정의할 경우 상속과 Interface 구현을 주로 사용하는데, 이 둘의 차이점과 각각의 장단점을 비교하여, 왜 Interface를 정의하고 구현하는 것이 더 좋은 선택인지 알아보겠습니다. 1. 상속과 Interface 구현의 차이점 상속(Inheritance) - 상속은 클래스 간의 계층적인 관계를 나타냅니다. - 부모 클래스의 멤버(필드, 메서드)를 자식 클래스가 그대로 상속받아 사용할 수 있습니다. - 상속은 is-a 관계이며, 자식 클래스가 부모 클래스의 하위 타입입니다. - 클래스 간의 강한 결합을 가져오며, 부모 클래스의 변경은 자식 클래스에게 영향 줄 수 있습니다. - 예시 : 동물을 나타내는 Animal 클래스가 있고, 각 동물들이 소리를 낼 수 있는지를 .. 2024. 4. 5.