일반적으로 3가지의 타입이 있다.
1. Built-in Type(내장형 타입)
2. User-defined Types(사용자 정의 타입)
3. Enumerations(열거형)
-----------------------------------------------------------------------------------------------------------
Built-in Value Types
sbyte | 1 byte |
byte | 1 byte |
short | 2 byte |
int | 4 byte |
uint | 4 byte |
long | 8 byte |
float | 3 byte |
double | 8 byte |
decimal | 16 byte |
other Value Types
char | 2 byte |
bool | 4 byte |
date | 8 byte |
위에서 언급한 Value Type들은 직접 직접 데이터를 가지며 변수에는 원본 데이터에 대한 복사본이 저장되며 한 변수에 대한 연산이 다른 변수에 영향을 미칠 수 없다는 특징이 있습니다. 참고로 C#은 대소문자를 구분해줍니다.
Value Types을 정의하는 방법은 다음과 같습니다.
1. Built-in Type
bool b = false;
다른 언어와 마찬가지로 변수가 직접 데이터를 가지기 때문에 위와 같이 정의 해줍니다.
2. User-defined Type
유저정의 타입은 표현을 할때 일반적으로 구조체를 사용한다. 여기 소스를 보면 쉽게이해가 갈 것이다.
using System; namespace User_defined_types |
3. Enumerations
열거형들은 고정된 값들을 가지고 있습니다. 하지만 고정된 값들은 모두 하나의 연관성을 가지고 있으며 그 중에 하나만을 선택하거나 할 때 사용하면 유용하게 쓰입니다.
using System; namespace enum_test |
-----------------------------------------------------------------------------------------------------------
Reference Types
Reference Types은 해당 타입의 인스턴스(instance)에 대한 참조입니다. 여기서 타입의 인스턴스를 개체라고 부릅니다. 개체는 object 입니다. 일반적으로 포인터라고 불리워집니다.
Value Types은 변수의 값을 그대로 복사해오는 것이지만 Reference Type은 개체 자체를 복사해서 그가 가진 모든 것들을 복사하는 것입니다.
using System; namespace reference_types |
Commom Reference Types
System.Object |
System.String |
System.Text.StringBuilder |
System.Array |
System.IO.Stream |
System.Exception |