이감자의 개발새발 개발일지

[C#] 자료형 - 기본 제공 값 형식 본문

개발새발🐶/기타

[C#] 자료형 - 기본 제공 값 형식

이 감자 2021. 2. 5. 15:24

C#의 자료형은 Value Type(값 형식)과 Reference Type(참조 형식)으로 나뉜다.

 

Value Type(값 형식)

  C#에서 제공하는 기본 Value Type의 자료형은 4가지로 정수형, 실수형, 논리형, 문자가 있으며, 자료형 별 접미어는 영문일 경우 대문자와 소문자를 구분하지 않는다.

 

자료형 C# 형식 크기 접미어
논리형 bool    
정수형 byte 8bit  
short 16bit  
int 32bit  
long 64bit  
실수형 float 32bit F
double 64it D
decimal 128bit M
문자 char 16bit(Unicode Type) ''

정수형은 부호가 없는 값의 경우 C# 형식 앞에 u를 붙여 사용할 수 있으며, 항상 0 이상의 값이 지정되어야 한다.

 

부호가 없는 정수형
자료형 C# 형식 크기 접미어
정수형 ushort 16bit  
uint 32bit U
ulong 64bit UL

 

  값 형식의 특징은 다음과 같다.

 

  1. 값 형식의 변수에 null을 할당할 수 없다.
  2. 상속이 불가능하다.

값 형식 변수는 해당 변수에 값을 할당할 때, 인수를 메서드에 전달할 때(parameter로 값을 전달할 때), 메서드에서 값을 return할 때 복사한다. 인수와 parameter로 변수 값을 전달할 때 변수 자체를 주고 받는 것이 아니라 변수의 값을 복사하여 주고 받는다.

 

Nullable Type

  앞서 Value Type의 특징으로 변수에 null 값을 할당할 수 없다고 서술하였는데, 필요한 경우 Nullable Type을 사용하면 null값을 할당할 수 있다. Nullable Type의 사용법은 다음과 같다.

int? i = null;

Nullable Type은 .NET의 Nullabel<T> 구조체로, 컴파일 시 변환되어 int?는 Nullable<int>와 동일하게 변환된다. 변수의 값이 null인지는 HasValue()를 통해 확인할 수 있다. 


Reference Type

  Reference Type은 데이터를 직접 저장하는 것이 아닌 데이터가 저장된 메모리 공간의 주소값을 저장하는 형식이다. 참조 형식이라 부르기도 한다. 참조 형식에는 string, object, dynamic이 있다.

  string은 문자열을 담을 수 있는 자료형이다. string은 문자를 배열 형태로 저장하기 때문에 다음과 같이 응용할 수 있다.

string s = "programming";
char c = s[0];
Console.WriteLine(c);

//output: p

string은 한 번 값이 할당되면 그 값을 변경할 수 없다.

string s = "hello world";
s = "c# programming";

이와 같이 값을 변경하고자 코드를 작성하면 'hello world'라는 문자열이 'c# programming'으로 변경되는 것이 아니라, 메모리를 새롭게 할당해 'c# programming'이라는 문자열을 저장한 뒤 변경된 Reference를 s 변수에 저장한다. 참조 형식 변수와 연결이 되지 않은 메모리 영역은 가비지 컬렉터가 자동으로 메모리 할당을 해제한다.

'개발새발🐶 > 기타' 카테고리의 다른 글

자료구조의 정의  (0) 2021.08.24
JavaScript 비동기 처리와 콜백 함수에 대하여  (1) 2020.10.27
Ajax와 Ajax 옵션 정리  (1) 2020.10.26
Comments