본문 바로가기
반응형

C#10

C# - 파티셜 클래스 ( Partial class ) 파티셜 클래스 ( Partial Class )  C#은 실용적이면서도 강력한 언어로, partial class 같은 기능들은 개발을 훨씬 편하고 유연하게 만들어줍니다. 이런 기능들을 깊게 이해하고 활용하는 것이 개발자로서 중요한 부분이죠. partial class는 정말 유용한 기능입니다. 클래스를 여러 곳에서 정의할 수 있어서 코드를 조직화하고 유지보수하기 쉽게 만들어줍니다. 특히, Code Generator가 자동으로 생성하는 부분과 개발자가 직접 작성하는 부분을 분리할 때 partial class가 특히 유용하게 사용됩니다. 이렇게 하면 개발자는 자신이 신경 쓸 부분에만 집중할 수 있어요. 또한, 여러 명의 개발자가 한 클래스를 함께 작업할 때 발생할 수 있는 충돌을 방지하기 위해 partial c.. 2024. 5. 20.
C# - Struct ( 구조체 ) / Enum ( 열거형 ) 구조체( Struct )정의구조체(struct)는 여러 개의 변수를 하나의 그룹으로 묶어 관리할 수 있는 사용자 정의 데이터 타입입니다. C, C++, C#, Rust, Swift 등의 많은 프로그래밍 언어에서 사용되며, 서로 관련된 데이터를 하나의 논리적인 단위로 묶어줍니다. 개요구조체는 객체 지향 프로그래밍의 클래스와 유사하지만, 일반적으로 클래스보다 간단하고 가벼운 데이터를 관리할 때 사용됩니다. 구조체의 멤버는 다양한 데이터 타입을 가질 수 있으며, 이를 통해 복잡한 데이터 구조를 간편하게 정의할 수 있습니다. 열거형(Enum)정의열거형(enum)은 이름을 가진 상수들의 집합을 정의하는 사용자 정의 데이터 타입입니다. 열거형을 사용하면 코드의 가독성을 높이고, 특정 값들만 사용해야 하는 경우 이를.. 2024. 5. 19.
C# - 연결 리스트(Linked List) 연결리스트 ( Linked List )정의연결 리스트(Linked List)는 각 노드가 데이터와 다음 노드를 가리키는 포인터를 포함하는 데이터 구조입니다. 노드(Node)는 연결 리스트의 기본 단위로, 리스트의 요소를 표현합니다. C#에서는 LinkedList 클래스를 제공하여 연결 리스트를 쉽게 사용할 수 있습니다.개요연결 리스트는 배열과 달리 요소가 연속된 메모리 위치에 저장되지 않고, 각 요소가 포인터로 연결되어 있습니다. 이 때문에 연결 리스트는 요소의 삽입과 삭제가 배열보다 효율적일 수 있습니다. 연결 리스트에는 다음과 같은 유형이 있습니다:단순 연결 리스트(Singly Linked List): 각 노드가 다음 노드에 대한 포인터만 가짐.이중 연결 리스트(Doubly Linked List): .. 2024. 5. 18.
C# - 캐스팅 |업캐스팅(UpCasting), 다운캐스팅(DownCasting) 캐스팅 ( Casting )업캐스팅(Upcasting)과 다운캐스팅(Downcasting)은 객체 지향 프로그래밍에서 클래스 계층 구조 내에서 객체의 타입을 변환하는 방법입니다. 이 두 가지 캐스팅 방법은 부모 클래스와 자식 클래스 간의 관계를 다루며, 유연한 코딩을 가능하게 합니다. 이 글에서는 업캐스팅과 다운캐스팅의 개념, 정의, 표현 방식, 장점, 단점, 그리고 예시를 통해 쉽게 이해할 수 있도록 설명하겠습니다.정의업캐스팅 (Upcasting)업캐스팅은 자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것을 의미합니다. 이는 암묵적으로 수행되며, 명시적인 캐스팅 없이도 가능합니다. 업캐스팅을 통해 자식 클래스 객체를 부모 클래스 타입의 변수에 할당할 수 있습니다.다운캐스팅 (Downcasting).. 2024. 5. 16.
C# - 상속 ( Inheritance ) 상속 ( Inheritance )개요상속은 객체 지향 프로그래밍(OOP)에서 중요한 개념으로, 기존 클래스를 재사용하고 확장할 수 있는 방법을 제공합니다. 상속을 통해 코드의 재사용성을 높이고 클래스 간의 관계를 명확히 할 수 있습니다.정의상속(Inheritance)은 하나의 클래스가 다른 클래스의 속성과 메서드를 물려받아 재사용하고 확장할 수 있도록 하는 기능입니다. 이를 통해 코드의 중복을 줄이고, 유지보수를 용이하게 할 수 있습니다. 상속을 받는 클래스를 파생 클래스(Derived Class) 또는 **자식 클래스(Child Class)**라고 하고, 상속을 제공하는 클래스를 기본 클래스(Base Class) 또는 **부모 클래스(Parent Class)**라고 합니다.기본개념기본 클래스(Base .. 2024. 5. 16.
C# -프로퍼티 ( Property ) 프로퍼티 ( Property )개요프로퍼티(Property)는 객체 지향 프로그래밍(OOP)에서 중요한 개념으로, 클래스의 데이터를 안전하게 관리하고 외부에서의 접근을 제어하는 방법을 제공합니다. 프로퍼티는 클래스의 필드에 간접적으로 접근할 수 있도록 하여 데이터 무결성을 유지하고 코드의 가독성을 높입니다.정의C#에서 프로퍼티는 클래스의 내부 데이터를 외부에서 안전하게 접근하고 수정할 수 있는 메서드입니다. 프로퍼티는 get과 set 접근자를 사용하여 값을 읽고 쓸 수 있습니다. get 접근자는 프로퍼티의 값을 반환하고, set 접근자는 프로퍼티의 값을 설정합니다.get과 set 접근자get : 프로퍼티의 값을 반환하는 메서드입니다. 프로퍼티를 읽을 때 호출됩니다.set : 프로퍼티의 값을 설정하는 메서.. 2024. 5. 16.
C# - 이벤트헨들러 ( EventHandler ) 이벤트핸들러 ( EventHandler )개요이벤트 핸들러는 객체가 특정 이벤트가 발생했을 때 실행되는 메서드를 나타내는 개념입니다. 주로 GUI 프로그래밍에서 사용되며, 버튼 클릭, 키 입력 등의 사용자 동작에 대한 응답을 처리하는 데 사용됩니다.정의이벤트 핸들러는 이벤트가 발생했을 때 실행될 메서드를 나타내는 대리자(Delegate)입니다. 이벤트 발생 시에 등록된 핸들러 메서드가 호출되어 해당 이벤트에 대한 작업을 수행합니다.이벤트 핸들러를 사용하는 이유?이벤트 핸들러는 보통 플레이어의 입력을 감지하고, 해당 입력에 따라 캐릭터의 움직임이나 공격 등의 동작을 처리해야 합니다. 이를 위해 이벤트 핸들러를 사용하여 특정 입력이 발생했을 때 실행되는 메서드를 정의하고, 이를 통해 캐릭터의 상태를 변경하거.. 2024. 5. 15.
C# - 델리게이트 함수 ( Delegate ) 델리게이트 ( Delegate )개요델리게이트(Delegate)는 C#에서 함수 포인터와 유사한 개념으로, 메서드에 대한 참조를 보유하는 형식입니다. 이를 통해 메서드를 변수에 할당하고 다른 메서드에 전달할 수 있으며, 이벤트 처리, 비동기 작업 등 다양한 시나리오에서 유용하게 사용됩니다.정의델리게이트는 C#에서 메서드에 대한 참조를 나타내는 형식입니다. 이를 통해 메서드를 변수에 할당하고 다른 메서드에 전달할 수 있습니다. 델리게이트는 메서드의 시그니처를 정의하며, 해당 시그니처와 일치하는 메서드만 참조할 수 있습니다. 델리게이트는 대리자 역할을 수행하며, 이를 통해 이벤트 처리, 비동기 프로그래밍 등 다양한 기능을 구현할 수 있습니다.표현 방식델리게이트는 다음과 같은 형식을 따릅니다.delegate .. 2024. 5. 15.
C# - 람다식 ( Lambda ) 람다식 ( Lambda )개요람다 표현식은 함수형 프로그래밍 스타일을 C#에서 구현하기 위한 강력한 도구입니다. 이를 통해 코드를 간결하고 읽기 쉽게 만들 수 있습니다. 하지만 람다 표현식의 범위와 생명주기(scope and lifetime)에 대한 이해가 필요합니다.정의람다 표현식은 매개변수를 포함한 코드 블록을 정의하여 변수에 저장하거나 메서드의 인수로 전달할 수 있는 간단한 문법입니다. 람다 표현식은 익명 메서드와 유사하지만 더 간결하고 표현력이 높습니다.람다 표현식은 다음과 같은 기본 형식을 따릅니다.(parameters) => expression(int a, int b) => a + b표현 방식 단일 매개변수와 단일 식 x => x * x람다 표현식은 다양한 방식으로 표현할 수 있습니다. 이는 .. 2024. 5. 15.
728x90
반응형