타입
- 변수의 형식, 타입에 따라 변수의 길이나 값을 해석하는 방식이 달라진다
- 정수형, 실수형을 구분하는 의미
- System 네임스페이스에 정의되어 있는 구조체이거나 클래스이다
CTS |
크기 |
부호 |
C# |
VB |
C++ |
System.Byte |
1 |
없음 |
byte |
Byte |
unsigned char |
System.SByte |
1 |
있음 |
sbyte |
없음 |
signed char |
System.Int16 |
2 |
있음 |
short |
Short |
short |
System.UInt16 |
2 |
없음 |
ushort |
없음 |
unsigned short |
System.Int32 |
4 |
있음 |
int |
Integer |
int 또는 long |
System.UInt32 |
4 |
없음 |
uint |
없음 |
unsigned (long) |
System.Int64 |
8 |
있음 |
long |
Long |
__int64 |
System.UInt64 |
8 |
없음 |
ulong |
없음 |
unsigned __int64 |
System.Char |
2 |
없음 |
char |
char |
wchar_t |
System.Single |
4 |
있음 |
float |
Single |
float |
System.Double |
8 |
있음 |
double |
Double |
double |
System.Decimal |
16 |
있음 |
decimal |
Decimal |
Decimal |
System.Boolean |
1 |
|
bool |
Boolean |
bool |
System.String |
가변 |
|
string |
String |
string |
System.Object |
가변 |
|
object |
Boolean |
Object * |
다음 두 선언문은 동일하다
닷넷 타입의 분류
값 타임
- 스택에 할당되며 변수가 값 자체를 직접 가진다
- 정수,문자,실수 등의 내장 타입과 열거형, 구조체 등이 값 타입이며 주로 크기가 작고 길이가 고정적인 값들을 저장한다
참조 타입
- 값 자체를 가지는 것이 아니라 값이 저장된 위치만을 가진다
- 선언 후 바로 사용할수 없고 힙에 기억 장소를 할당하는 초기화를 거쳐야 한다
- C의 포인터와 유사한 개념이라고 볼수있고, 사용되는 형태로는 레퍼런스에 가깝다
- 문자열, 클래스, 배열 등 길이가 가변적인 것들이 속한다
ex1)
int i;
정수형의 i라는 이름으로 선언, int 는 값 타임이므로 선언 후 i=5와 같이 바로 값을 대입할수 있다
여러개 선언할때는 콤마로 구분하여 선언하고, =다음에 초기값을 지정할수도 있다
ex2)
int i,j=5;
i와j를 선언후에 j는 5로 초기화했다
i는 선언만 했고 값이 들어가지 않았으므로 , 쓰레기 값이 들어가 있다
ex3)
int i;
Console.WriteLine(i);
i에 값이 선언되지않았는데 출력하려고 하기때문에 에러 메세지가 난다
ex4)
int[] ar;
ar = new int[10];
정수형 배열을 가리킬수 있는 참조형 변수가 이라는 이름으로 생성된다
new int[10]문에 의해 힙에 정수형 변수 10개를 저장 할수 있다
ex5)
Console.WriteLine("최소값 = {0}, 최대값 = {1}",int.MinValue, int.MaxValue);
int형에 저장할수있는 최소값과 최대값을 콘솔로 출력
int라는 구조체의 프로퍼티를 통해 조사한다
최소값 = -2147483648, 최대값 = 2147483647 으로 출력된다
int는 32비트의 부호가 있는 타입이므로 최소 -20억에서 최대20억까지 값을 저장한다
'Study > C#' 카테고리의 다른 글
C# 타입 - 1. 값 타입 (열거형) (0) | 2011.11.10 |
---|---|
C# 타입 - 1. 값 타입 (내장형) (0) | 2011.11.09 |
C# Main 함수 (0) | 2011.11.07 |
C# 콘솔의 여러가지 기능 (2) | 2011.11.07 |
C# 입력하기 - 2. 키 입력받기 (0) | 2011.11.02 |