본문 바로가기

C#16

[C#] 이벤트 개념과 이벤트를 이용한 코딩 사례 3가지 C#에서 객체 간의 통신과 상호작용을 가능하게 하는 유용한 기능으로 이벤트가 있습니다. 이번 글에서는 이벤트의 개념과 이벤트를 이용하여 유용한 코딩 사례를 살펴보겠습니다. 이벤트(Event)의 개념 이벤트의 선언과 구독 이벤트를 이용한 유용한 코딩 사례: 옵저버 패턴 이벤트를 이용한 유용한 코딩 사례: 이벤트 기반 프로그래밍 이벤트를 이용한 유용한 코딩 사례: 비동기 프로그래밍 1. 이벤트(Event)의 개념 이벤트란 프로그램 내에서 발생하는 신호를 나타내며, 주로 객체 간 상호작용 및 통신에서 중요한 역할을 합니다. 사용자의 동작이나 시스템 상태의 변화와 같은 외부 요소로 인해 발생하며, 해당 이벤트에 연결된 핸들러가 실행됩니다. 또한, 이벤트는 객체 지향 프로그래밍에서 코드의 모듈화와 유연성을 증가시.. 2024. 4. 19.
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.