C#

C# 데이터 타입

doridam 2023. 7. 5. 14:04

 


 

1. C# 의 데이터 타입

C#은 .NET의 Common Type System에 정의된 .NET 데이터 타입을 사용한다.
데이터 타입은 C# , .NET 두개의 표현방식을 모두 사용할 수 있다.

2. 리터럴 데이터

123    // int 리터럴
12.3   // double 리터럴
"A"    // string 리터럴
'a'    // char 리터럴
true   // bool 리터럴

C#의 리터럴은 고정된 값을 의미하며, 다양한 리터럴을 지정할 수 있다. 별도의 접미어 표시가 없는 경우 디폴트 리터럴 타입을 의미하고, 특정 접미어(Suffix)에 따라 데이터 타입을 지정할 수 있다.

 

예제)

// Bool
bool b = true;

// Numeric
short sh = -32768;   
int i = 2147483647;  
long l = 1234L;      // L suffix
float f = 123.45F;   // F suffix
double d1 = 123.45; 
double d2 = 123.45D; // D suffix
decimal d = 123.45M; // M suffix

// Char/String
char c = 'A';
string s = "Hello";

// DateTime  2011-10-30 12:35
DateTime dt = new DateTime(2011, 10, 30, 12, 35, 0);

 

3. null

string str = null; // 가능

// int num = null; // 불가능
변수가 어떠한 데이터도 가지지 않았다는 의미로 null을 사용한다. null을 가질 수 있는 변수는 참조형 변수가 있으며, 값 변수는 null을 가질 수 없다. 

4. Nullable Type

int? any = null; // 가능

any = 3;

int num = any.value; // Nullable<int> -> int 로 변환
일반적으로 값 변수는 null을 가질 수 없다. 하지만 C# 2.0 부터 null을 가질 수 있게 하는 Nullable Type이 생겼다.
물음표를 타입뒤에 붙임으로써 Nullable<T> 타입으로 변환된다. Nullable 타입은 .value를 통해 일반 타입으로 변경도 가능하다.