고양이와 별무리 도서관

고양이와 별무리 도서관 Post List

확장 메서드 (Extension Method)

확장 메서드는 이미 정의된 클래스에 새로운 메서드를 추가할 수 있게 해주는 기능입니다. 이 기능은 기존 클래스의 내부 코드를 수정하지 않고 마치 새로운 인스턴스 메서드를 정의하는 것처럼 추가할 수 있습니다. 일반적으로 기존 클래스의 메서드를 확장하는 방법으로는 상속이 있는데, sealed로 봉인된 클래스는 상속 받을 수 없고, 새로운 기능으로 확장...

Attribute(어트리뷰트)와 AttributeTargets

어트리뷰트(Attribute)는 코드 요소에 대한 메타데이터를 추가하는 방법입니다. 어트리뷰트는 클래스, 메서드, 프로퍼티, 필드, 이벤트 등 다양한 코드 요소에 적용될 수 있으며, 주로 런타임 시 또는 컴파일 타임에 특정 동작을 변경하거나 추가 정보를 제공하기 위해 사용됩니다. 이 추가 정보는 런타임에 리플렉션을 통해 접근할 수 있습니다. 어트...

리플렉션 (Reflection)

리플렉션(Reflection)이라는 용어는 “반사”, “(거울에 반사되어 비친) 상”, “반영”, “묘사(설명)” 등의 뜻이 있습니다. 프로그래밍에서 리플렉션은 프로그램이 런타임에 자신을 반사 혹은 묘사하여 자신의 구조와 동작에 대한 정보를 얻고, 이를 바탕으로 동적으로 동작을 변경할 수 있는 기능을 의미합니다. 즉, 리플렉션(Reflection)...

C#의 람다(Lambda)와 캡처(Capture), 클로저(closure)

람다(lambda)는 일반적으로 익명 함수(anonymous function) 혹은 이름이 없는 작은 함수로, 다른 함수 내에서 인라인으로 정의되거나, 간단한 표현식을 실행하기 위해 사용됩니다. 일반적인 람다 함수의 특징 익명성: 람다 함수는 굳이 이름을 붙이지 않고, 즉석에서 정의하고 사용할 수 있습니다. 간결함: 람다 함수는 간단한 표...

[delegate] 03. 익명 델리게이트와 Func, Action

익명 델리게이트(Anonymous Delegate) 델리게이트에 메서드 참조를 저장하기 위해 함수의 식별자(이름)을 제공하지만, 가끔씩은 특정 함수 내에서만 사용되어 함수를 따로 만들어 둘 필요가 없을 때도 있습니다. (이름이 필요 없는 일회용 함수를 사용하고 싶을 때) 이럴 때, 이름이 명시되지 않은 델리게이트인 익명 델리게이트를 사용할 수 있습...

[delegate] 01.델리게이트의 정의와 정체, 체이닝, 사용 목적

델리게이트(Delegate)는 C#에서 중요한 개념 중 하나로, 메서드 참조를 저장하고 호출할 수 있는 형식을 제공하는 기능입니다. C++의 함수 포인터와 비슷한 개념인데, 좀 더 많은 기능을 제공합니다. 델리게이트를 사용하면 메서드를 매개변수로 전달하거나, 런타임에 호출할 메서드를 동적으로 결정할 수 있습니다. 델리게이트 사용 델리게이트는 d...

인터페이스(Interface)와 추상 클래스(Abstract Class)

인터페이스(Interface) 인터페이스는 객체 지향 프로그래밍에서 중요한 개념으로, 메서드 시그니처만을 정의하고, 구현은 제공하지 않는 일종의 청사진입니다. 인터페이스는 주로 다형성을 구현하고, 클래스 간의 결합도를 낮추는데 목적이 있습니다. 그로 인해 서로 다른 클래스들이 동일한 인터페이스를 구현함으로써 상호 작용 할 수 있게 합니다. 즉, ...