728x90
SMALL

C#, 자료구조 11

Delegate, Event, Action, Func

Unity(그리고 C#)에서 델리게이트(delegate) 와 이벤트(event) 는 굉장히 중요한 개념이며 특히 게임 개발에서 객체 간 통신을 깔끔하게 처리할 때 정말 많이 쓰인다. 즉 Delegate, Event, Action, Func과 같은 함수들은 여러 가지 함수들을 하나의 변수에 저장한 뒤 처리하는 이벤트 처리방식 이다. Unity에서 델리게이트/이벤트를 많이 쓰는 곳 예시버튼 클릭 처리 (UnityEvent 내부)몬스터 죽었을 때 알림 보내기플레이어 체력 변동 알림아이템 획득 시 효과 발동씬 전환 신호 보내기 1. 델리게이트(delegate)란? - 직접 형식을 만들어서 사용하는 방법하나 이상의 메서드를 참조하는 타입입니다.메서드를 변수처럼 저장하고, 필요할 때 실행할 수 있다. 2. 이벤..

C#, 자료구조 2025.04.29

ref 와 out

ref와 out은 둘 다 값을 참조 형태로 전달하기 위해 사용되는 키워드지만, 용도와 사용 방식에 차이점이 있다. ref란?ref 키워드는 메서드에 변수를 참조로 전달할 때 사용된다. 이를 통해 메서드 내에서 변수의 값을 변경할 수 있으며, 변경된 값이 반영된다. ref를 사용할 때는 변수가 메서드 호출 전에 초기화되어 있어야 한다. 이처럼 변수를 초기화 안시키고 사용하면 컴파일 중에 오류가 난다. 왜 오류가 날까?ref를 통해 참조된 변수가 메서드 내에서 미리 정의된 값에 의존할 수 있기 때문이다. out이란?out 키워드도 메서드에 변수를 참조로 전달할 때 사용되지만, out을 사용할 때는 변수를 메서드 호출 전에 초기화할 필요가 없다. 대신, 메서드 내에서 반드시 변수를 초기화해야 한다...

C#, 자료구조 2025.04.24

[자료구조] - Collection: Dictionary 와 HashTable 차이점

Collection : C#에서 지원하는 자료구조 클래스. List, ArrayList, Dictionary, HashTable, Stack, Queue 등...   Dictionary와 HashTable 공통점 둘 다 key와 value를 사용해서 자료를 저장하는 타입이라는 공통점이 있다. 둘의 사용법은 거의 동일하지만 내부적으로 차이가 있다.   Dictionary와 HashTable 차이점  DictionaryHashTable.NET의 제네릭 컬렉션 클래스로, 키와 값을 각각 TKey와 TValue 타입으로 지정할 수 있다. 제네릭 타입을 사용하기 때문에 특정 타입의 키와 값을 명시적으로 정의할 수 있다. 키와 값을 object 타입으로 저장하는 비제네릭 컬렉션 클래스다. 이는 .NET의 오래된 컬..

C#, 자료구조 2024.07.29

[자료구조] - Collection: ArrayList와 List 차이점

Collection : C#에서 지원하는 자료구조 클래스. List, ArrayList, Dictionary, HashTable, Stack, Queue 등...   List 와 ArrayList 차이점  ListArrayList 제네릭 지원 여부제네릭 타입을 지원 즉, 리스트가 특정 타입의 객체만 포함 할 수 있다.예를 들어, List는 정수만 저장할 수 있다.타입 안정성을 제공하여 컴파일 시 타입 검사를 할 수 있다.제네릭 타입을 지원하지 않는다.즉, 아무 타입이나 가능모든 타입의 객체를 저장할 수 있다. 이는 타입 안정성이 낮고, 런타임에 타입 검사를 해야 한다.성능 제네릭이기 때문에 박싱(Boxing)과 언박싱(Unboxing) 비용이 없다. 따라서 성능이 더 좋다.컴파일 타임에 타입이 결정되므로..

C#, 자료구조 2024.07.25

[자료구조] - Array(배열) 와 List(리스트) 차이점

C#에서 배열과 리스트는 모두 여러 개의 같은 타입의 데이터를 저장하는 데 사용되지만, 중요한 차이점이 있다.이 글에서 배열과 리스트의 주요 차이점을 설명하고자 한다.  배열과 리스트 중 어떤 것을 사용할지는 상황에 따라 다르다. 배열은 고정 크기 데이터와 성능이 중요한 경우에 적합하고, 리스트는 크기가 동적으로 변하고 다양한 조작이 필요한 경우에 적합하다.  요약배열: 고정 크기, 연속된 메모리 할당, 고성능 요소 접근, 다차원 배열 지원리스트: 가변 크기, 동적 크기 조정, 다양한 메서드 제공, 제네릭 컬렉션 비교 배열리스트고정 크기배열은 선언할 때 크기가 고정되며, 생성된 후에는 크기를 변경할 수 없다.리스트는 크기가 동적으로 변경될 수 있다. 요소를 추가하거나 제거할 수 있습니다.성능배열은 연속된..

C#, 자료구조 2024.06.24

[자료구조] - Tuple

Tuple 이란? - C#에서 Tuple(튜플)은 다양한 데이터 형식의 요소들을 담고 있는 간단한 자료구조 - 여러 값을 그룹화하고 반환하기 위해 매우 편리하다. Tuple의 특징 여러 값의 그룹화: Tuple은 서로 다른 형식의 요소들을 하나의 객체로 묶어서 다룰 수 있다. 예를 들어, int, string, bool 등 다양한 형식의 값을 함께 그룹화할 수 있다. 익명 타입: Tuple은 이름이 없는 익명의 타입이다. 일반적인 클래스나 구조체와 달리 클래스나 구조체의 이름이 필요하지 않다. Immutable (불변): Tuple은 한 번 생성되면 변경할 수 없다. 값을 읽을 수는 있지만, 내부의 요소를 변경할 수는 없다. 패턴 매칭: C# 7.0부터 패턴 매칭(pattern matching)과 함께 ..

C#, 자료구조 2024.04.12

Generic Collectin 메서드

🔔 본인 기준 많이 사용하는 메소드는 색칠표시 🔔 1. List 메서드 메서드 설명 Add(T) List의 끝에 개체를 추가합니다. AddRange(IEnumerable) 지정된 컬렉션의 요소를 List의 끝에 추가합니다. AsReadOnly() 현재 컬렉션에 대한 읽기 전용 ReadOnlyCollection 래퍼를 반환합니다. BinarySearch(Int32, Int32, T, IComparer) 지정된 비교자를 사용하여 정렬된 List의 요소 범위에서 요소를 검색하고 요소의 인덱스(0부터 시작)를 반환합니다. BinarySearch(T) 기본 비교자를 사용하여 정렬된 전체 List에서 요소를 검색하고 요소의 인덱스(0부터 시작)를 반환합니다. BinarySearch(T, IComparer) 지정된 ..

C#, 자료구조 2024.04.05

[자료구조] - Collection이란?

C#,JAVA 에서는 Collection 이라는 용어 사용, C++ 에서는 Container 이라는 용어를 사용한다. 1. Collection 이란? C#에서 Collection은 데이터를 저장하고 조작하기 위한 여러 유형의 데이터 구조를 말한다. 컬렉션(Collection)은 C#에서 지원하는 자료구조 클래스이다. 컬렉션의 종류는 [ArrayList, Queue, Stack, Hashtable] 등이 있다. 2. General Collection 이란? 컬렉션의 성능 문제 때문에 대신 사용하는 것이 제네릭 컬렉션이다. 제네릭 컬렉션은 [List, Dictionary , Queue, Stack] 등의 클래스가 있다. 🔔주의 사항🔔 Generic을 사용하기 위해선 항상 Generic 네임스페를 추가해주자!..

C#, 자료구조 2024.04.03

[자료구조] - 자료구조란 무엇일까?

자료구조(Daga Structure) : 데이터를 구성하고 저장하는 데 사용되는 방법이나 구조를 의미하며 데이터를 효율적으로 접근하고 조작할 수 있게 데이터 구조를 만들어 관리하는 것이다. 한줄요약 - 데이터 보관 방법 = 자료구조 1. 자료구조 왜 사용할까? 효율적인 데이터 관리를 위해 복잡한 데이터들을 체계적으로 관리해 빠르게 찾고 쉽게 사용할 수 있다. 최적화 - 자료구조는 알고리즘과 함께 사용되어 데이터를 효과적으로 조작하고 관리하는 데 도움을 주며 적절한 자료구조를 선택하고 활용하면 프로그램의 성능과 유지보수성을 향상시킬 수 있다. 2. 자료구조 종류 단순 구조(Primitive Data Structure) : 정수, 실수, 문자, 부울린 등의 기초 타입들이 있다. 선형 구조(Linear Dat..

C#, 자료구조 2024.03.26

[자료구조] - Enum이란?

C#에서 Enum이란?  유니티(Unity), C#에서 Enum(열거형)은 서로 연관된 상수의 집합을 나타내는 데이터 형식이다. Enum은 특정 값들의 목록을 정의하고 이 목록에서 선택할 수 있도록 하는 도구이다. 각 상수는 고유한 이름을 가지며, 해당 상수에는 특정 정수 값이 할당된다.  언제 사용할까? - 상수들을 읽을 수 있는 문자로 만들어 쉽게 사용할 수 있다. 장점? 1. 가독성이 좋다. 열거형은 숫자 상수보다 이해하기 쉬운 지정된 이름을 가진 상수를 사용하기에 읽기 쉽고 이해하기 쉽다.2. 유지관리가 편하다. 상수의 값을 변경하지 않고 사용할 수 있기에 쉽고 편하다.3. 함께 작업하거나 코드를 재활용할때 실수가 적다. 즉 상수값이 아닌 문자형식의 데이터를 사용하기 때문에  열거형 변수에 실수로..

C#, 자료구조 2024.03.05
728x90