c- 값 타입은 정적 할당으로 Stack 메모리에 저장된다.참조 타입은 변수자체는 Stack메모리에, 실제 데이터는 동적 할당으로 Heap 메모리에 저장이 된다.\-> 즉, new를 통해 실제 데이터를 힙에 저장하면, 스택에 저장되어있는 변수(포인터)가 가리키는 형태이
실행 가능한 프로그램 코드 저장.프로그램 시작 시점에 메모리에 로드.전역 변수 또는 정적 변수 저장.static은 프로그램시작과 함께 할당하고, 종료시에 소멸.동적 메모리 저장.사용자에 의해 관리.힙에 할당되는 인스턴스는 함수 종료와 함께 더이상 참조하는 변수가 없다면
c\`\`\`Nullable nullableInt = new Nullable(5);int? nullableInt = nullnullableInt ??= 10using(Player p = new Player()){}class Player : IDisposable{ p
1. 객체지향구현 > 1-1. 객체지향구현이란? 모든 대상을 객체로 나누고, 객체의 행동과 고유한 값을 정의하여 설계하는 방법. 코드가 순차대로 실행되는 절차지향 구현과는 반대되는 개념. 1-2. 장점 효율적인 관리 및 성능 향상. 전체적인 소프트웨어 복잡성 감소.
1. delegate > 1-1. delegate 메서드를 담을 수 있는 자료형. 참조 타입 콜백함수, 지정자, 이벤트(앞에 event 붙여서)로서 사용할 수 있다. 1-3. 사용 방법 담으려는 메서드의 매개변수 타입과 리턴타입이 delgate와 일치해야한다. 1-4. Func, Action, Predicate 일반화 delegate 위와 같이 따로 ...
1. 확장메서드 > 1-1. 확장메서드 타인이 만든 클래스에 직접 접근하여 기능을 추가하면 자신의 코드가 아니기때문에 에러가 발생할 수 있으므로 협업 관계에 혼란이 있을 수 있음. 기존에 있는 클래스를 건들지 않고, 기능을 추가할 수 있도록 하는 기능. 1-2. 사용
1. 딕셔너리 > 1-1. Dictionary c#에서 Dictionary는 해시테이블로, key와 value로 이루어진 자료구조. 키 값을 해시함수로 해싱하여 해시테이블의 특정 위치로 직접 엑세스하도록 만든 방식. 해시: 임의의 길이를 가진 데이터를 고정된 길이를 가
C -> 삽입 + 퀵 + 힙버블정렬: 삽입과 선택정렬은 연결리스트에서는 구현이 어렵기 때문에, 버블정렬로 정렬.평균적으로 퀵정렬이 제일 빠름, but 최악의 경우 퀵정렬은 O(n^2).\-> 퀵 > 머지 > 힙.최악으로 세타(nlogn)이 걸리고, in-place인 경
참조 타입object는 참조 타입이기 때문에, a의 데이터를 복사해 힙 메모리에 할당.\-> 값 타입에서 참조 타입으로 변환하는 과정이 박싱!b의 데이터를 복사해 스택 메모리에 할당.\-> 참조 타입에서 값 타입으로 변환하는 과정이 언박싱!int 타입으로 선언되었던 타