본문 바로가기

C#/C# 학습 (TIL)32

C# 컬렉션 - 딕셔너리 / 해쉬테이블 ▶컬렉션 리스트, 사전, 배열과 같은 대량의 데이터를 관리 및 제어할 수 있는 클래스를 의미한다. ▷ C#언어 컬렉션의 특징 1. C# 언어의 컬렉션은 기본적으로 모든 타입의 데이터를 보관하는 것이 가능하다. - 즉, Object 형을 기본으로 동작하도록 설계되어 있다. 2. C# 언어의 컬렉션은 내부적으로 Object 형으로 동작하기 때문에, 값 형식의 데이터를 제어할 경우 박싱과 언박싱이 발생하기 때문에 필연적으로 퍼포먼스 저하가 발생한다. (note) 컬렉션 -> object ->박싱/언박싱 ▷ArrayList 값을 foreach와 enmerator로 컬렉션 순회하기 ※ foreach 또는 이너머레이터 기반의 컬렉션 순회는 내부적으로 가비지 컬렉션을 유발하기 때문에 가능한 사용을 자제해야한다. 즉,.. 2022. 6. 30.
C# Array 배열/ Static Class 정적 클래스 / Extend Method 확장메서드 / 변수 표기법 / StringBuilder ▶ C#언어의 배열 특징 - C#언어의 배열은 참조형식의 데이터 타입에 속한다. ㄴ 즉, 가비지 컬렉션에 의해서 메모리가 관리된다. -C#언어의 배열은 가변 길이 배열을 지원한다. ㄴ 즉, 배열의 각 행의길이를 서로 다르게 명시하는 것이 가능하다. 단, 가변길이 배열은 2차원 배열만 지원한다. C++은 다차원 지원, C#에서는 가변배열 지원. = 2차원 지원. 왜 2차원? 행렬을 표현하기 위함 String과 StringBuilder String : string은 값타입이 아닌 참조변수다. 즉, 문자열을 조합할때마다 새로운 클래스가 생성이 되고 이전의 데이터는 GB(Gabage Collector)에 의해서 수집이 된다. 따라서 문자열을 조합할때마다 메모리 낭비 및 부하가 발생되는 비효율적인 코드가 생산된다.. 2022. 6. 29.
C# 자료형의 특징 , 변수의 특징 - 값 형식 / 참조 형식 데이터 타입 ▶C# 언어 자료형의 특징 - C# 언어는 기본적으로 모든 데이터가 클래스 객체로 인식된다. int , float, double 등 기본 자료형도 C#에서는 내부적으로 클래스로 표현된다. - C#언어는 자료형의 데이터 타입에 따라서 값 타입과 참조 타입으로 나뉜다. 그리고 데이터의 형식에 따라서 기본 데이터 형식과 복합 데이터 형식으로 구분된다. 기본데이터형식 : 숫자 형식, 문자열 형식, 논리 형식, 오브젝트 형식 등으로 나누어지는 것. 복합데이터 형식 : 구조체, 클래스, 배열 ▷값 형식 데이터 타입의 특징 값 형식의 데이터 타입은 스택 메모리에 할당된다. 즉, "시스템"에 의해서 메모리가 관리된다. ▷참조 형식 데이터 타입의 특징 참조 형식 데이터 타입은 실제저인 값을 할당하는 값 형식과는 달리, .. 2022. 6. 29.
C# CLR(공통언어런타임) / CIL(공통 중간 언어) / C#의 메모리 관리 방식 C#언어의 문법을 숙지해야하는 이유 유니티 엔진에서 기본적으로 스크립트는 대부분 C# 스크립트를 이용하기 때문에, 유니티 엔진의 활용성을 높이기 위해서는 C# 언어에 대한 지식이 필수로 필요하다. C/ c++ 스타일로 C#을 모르고 작성하는 것도 가능하지만 결국엔 한계에 부딪히게 된다. C# 프로그램 동작방식 CLR(Common Language Runtime)이라는 자바의 가상 머신과 비슷한 프로그램 위에 구동이 된다. C/C++언어와 달리 결과물이 바로 컴퓨터가 실행할 수있는 실행파일로 생성되지않는다는 것을 의미한다. CIR이란? (Common Language Runtime) 마이크로 소프트에서 개발한 가상머신의 구성요소(windows 전용) 기능 1. 중간 언어를 JIT 컴파일러를 이용해서 기계어로 .. 2022. 6. 28.