전체 글 133

5장. 패턴 매칭

[2025-02-23] - 게시글 최초 작성1. 패턴 매칭이란?어떤 식이 특정 패턴과 일치하는지 검사.2. 패턴 매칭2.1 선언 패턴주어진 식이 특정 형식과 일치하는지 평가 1. 식이 주어진 형식과 일치하는지 테스트2. 테스트가 성공하면 식을 주어진 형식으로 변환/* * 1. obj가 int인 경우 * 2. obj가 int형식으로 변환하여 bar에 할당 */if (obj is int bar) { Console.WriteLine(bar);}2.2 형식 패턴선언 패턴과 거의 같은 방식으로 동작, 변수 생성 없이 형식 일치 여부만 테스트object obj = 23;if (obj is int) { Console.WriteLine(obj);}class Preschooler { }class Under..

카테고리 없음 2025.02.23

05장. Switch

[2025-02-23] - 게시글 최초 작성1. Switch 사용시 주의점! 가능한 한 연속적인 정수형 case를 사용하여 점프 테이블 최적화를 유도. 불필요하게 복잡한 조건을 줄이는 것이 중요하다.2. Switch 문2.1 형식 패턴// To Version C# 7.3object obj = 123;switch (obj){ case int: // ... break; case float: // ... break; default: break;} 2.2 케이스 가드 switch 문의 case절의 패턴을 더 구체적으로 만들어주는 추가적인 조건 검사// To Version C# 7.3object obj = 123;switch (obj)..

[ 공 부 ]/[ C# ] 2025.02.23

C# 프로그래밍 간단 정리

[2025-02-19] - 게시글 최초 작성[2025-02-23] - 내용 추가 ( 2-2 ~ 4 )1. C# 프로그래밍C++ 프로그래밍과의 차이점!컴파일 방식C++  1. 소스 코드(.cpp) 작성 2. 컴파일러(g++, MSVC) 가 네이티브 코드로 변환 ( .exe, .out 생성 ) 3. 운영 체제에서 실행C#  1. 소스 코드 (.cs) 작성 2. C# 컴파일러 (csc) 가 IL(Intermediate Lanuage) 코드로 변환 3. .NET 런타임(CLR, Common Language Runtime) 이 JIT(Just-In-Time) 컴파일하여 실행 용어 정리한정자 : 다른 요소들을 꾸며주는 역할을 하는 요소CLR : C#으로 만든 프로그램이 실행되는 환경 ( 자바의 가상 머신과 비슷한 ..

[ 공 부 ]/[ C# ] 2025.02.19

Async / Await

[2025-02-09] - 게시글 최초 작성1. Async / Await 란? 비동기 프로그래밍을 간편하게 만들어주는 문법적 도우미. 컴파일러가 자동으로 생성하는 "상태 기계"에 핵심이 숨어 있다.2. Async / Await2.1 상태 기계메서드의 실행 상태(어느 부분까지 실행되었는지, 지역 변수 값 등) 을 저장하는 객체해당 객체는 일반적으로 힙에 할당되며, 메서드가 중단되었다가 재개될 때 필요한 정보를 가지고 있다. 1. aysnc 메서드가 컴파일될 때, 컴파일러는 해당 메서드를 IAsyncStateMachine 인터페이스 구현 - 이 내부 클래스는 메서드의 지역 변수, 현재 상태, Task의 결과를 전달할 빌더 등을 필드로 갖는다. 2. IAsyncStateMachine 인터페이스는 MoveNex..

[ 공 부 ]/[ C# ] 2025.02.09

22장. 가비지 컬렉션

[2025-01-31] - 게시글 최초 작성1. 가비지 컬렉터란? CLR이 자동 메모리 관리 기능을 제공하고 이 기능의 중심에 가비지 컬렉션이 존재한다. 가비지 컬렉터는 CPU와 메모리 같은 컴퓨팅 자원을 소모.  unsafe 키워드 : 비관리형 코드. ( CLR이 제공하는 서비스를 받을 수 없다 )2. 가비지 컬렉터2.1 CLR이 객체에 메모리를 할당하는 방법할당하는 방법1. C#으로 작성한 소스 코드를 컴파일해서 실행 파일을 만들고,    이 실행 파일을 실행시 CLR은 프로그램을 위한 일정 크기의 메모리를 확보2. 메모리 공간을 통째로 확보해서 하나의 관리되는 힙을 마련3. 확보된 힙 메모리의 첫 번째 주소에 ' 다음 객체를 할당할 메모리의 포인터'를 위치메모리에서 해제되는 방법1. 스택에서 해당 ..

[ 공 부 ]/[ C# ] 2025.01.31