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를 통해 일반 타입으로 변경도 가능하다.