본문 바로가기

C#

C# 기본 이론 정리

이것이 C#이다를 요약하였다. 다 읽은 건 아니라서 앞으로 읽으면서 추가할 예정이다.

2장

네임스페이스
성격이나 하는 일이 비숫한 클레스, 구조체, 인터페이스, 대리자, 열거 형식 등을 하나의 이름아래 묶는 역할

 

클래스
C# 프로그램을 구성하는 기본 단위. 메소드로 이루어짐

 

CLR(Common Language Runtime)
C#으로 만든 프로그램이 실행되는 환경, 엔진
자바돔과 비슷한 개념임
C# 컴파일러-JIT 컴파일하여 IL 실행파일을 만들어내면, CLR가 IL를 읽어들여서 하드웨어가 이해할 수 잇는 네이티브코드로 변환함
C# 외 다른 언어도 지원가능함.
컴파일하는데 자원이 들지만 설치된 플랫폼에 최적화된 컴파일 가능
가비지 컬렉션 기능 지원

  • JIT 컴파일
    Just in Time
    실행에 필요한 코드를 실행할 때마다 컴파일
  • IL 언어
    Intermediate Language
    중간언어

가비지 컬렉션
자동 메모리 관리. 더이상 사용하지 않는 메모리는 쓰레기로 간주하여 자동으로 수거하는 기능

3장

C#의 데이터 타입에는 기본 데이터 형식과 복합 데이터 형식이 있다.
복합데이터 형식의 종류: 구조체, 클레스, 배열 등
기본 데이터 형식과 복합 데이터 형식은 각각 값형식과 참조 형식이 있다.
메모리 영역에는 스택 영역과 힙 영역이 있다.

값형식변수가 데이터를 담는 형식
스택 메모리 영역에 저장

 

참조형식
변수가 값 대신 값이 있는 위치를 담는 데이터 형식
스택과 힙 메모리 영역을 둘 다 이용
힙에 데이터를 저장하고, 스택에는 데이터 주소를 저장함

 

스택 메모리
제일 먼저 넣은 데이터가 가장 마지막에 나감
가장 마지막에 넣은 데이터가 가장 먼저 나감
대괄호 }를 만나면 스택에 있는 데이터들이 전부 사라짐

 

힙 메모리
데이터를 스스로 제거하는 매커니즘 없음
CLR의 가비지 컬렉터가 이 기능을 대신함

 

리터럴
"문자 그대로의" 라는 뜻
고정값을 나타낸는 표기법
예를 들어 int a = 30;에서 30이 리터럴
string b = "가나다"에서 "가나다"가 리터럴림

 

char
문자열이 아니라 정수 타입이다.
작은 따옴표로 묶어서 한 글자만 담을 수 있다.

 

string
큰 따옴표로 묶어서 여러 글자를 담을 수 있다.
딱히 크기가 정해진 것이 아니라서 원하는 만큼 문자를 담을 수 있다.

 

object
모든 자료형을 전부 담을 수 있다.
기본데이터 형식, 복합데이터 형식, 사용자 정의 형식 전부 다 담을 수 있다.
참조형식 데이터이다.

 

박싱
값형식 데이터를 참조형식 데이터로 변환하는 것

 

언박싱
참조형식 데이터를 값 형식 데이터로 변환하는 것

int a = 123;
object b = (object)a; //박싱 
int c = (int)b; //언박싱 

var
C#은 강력한 형식 검사를 지원하는 언어이지만, var를 사용하면 약한 형식 검사를 사용하는 언어처럼 사용할 수 있음
var 키워드를 사용하려면 반드시 변수를 초기화 해야함.
var는 지역 변수로만 사용할 수 있음

'C#' 카테고리의 다른 글

Serilog 로그 설정  (0) 2024.05.19
[WorkerService] 윈도우 서비스 등록하기  (0) 2024.04.22
[WorkerService] Quartz 사용하기  (0) 2024.04.18
C# Supersocket  (0) 2023.08.14