C#에는 열다섯 가지 type이 있고, 각 type마다 서로 다른 종류의 데이터를 저장할 수 있다.
1. 거의 항상 사용하는 유형
-int, string, bool, float
- int에는 -2,147,483,648부터2,147,483,647까지의 정수를 저장 할 수 있다.
- string에는 길이에 상관없이 임의의 텍스트를 저장할 수 있다.
- bool에는 부울 값인 참(true) 또는 거짓(false)을 저장할 수 있다.
- float에는 土1.5*10의 -45승 에서 土3.4*10의 38승 까지 최대 유효숫자 일곱 자리까지 저장할 수 있다.(유효숫자만 7자리 이하면 소수점 아래의 숫자와 상관 없이 아주 작은 수까지도 저장 가능)
2. 기타 정수 유형
-byte, sbyte, short, ushort, uint, long, ulong
(이런 유형은 주로 "래핑"효과를 활용하기 위해 쓰인다)
- byte에는 0이상 255 이하의 정수를 저장할 수 있다.
- sbyte에는 -128 이상 127 이하의 정수를 저장할 수 있다.
- short에는 -32,768이상 32,767이하의 정수를 저장할 수 있다.
- ushort에는 0이상 65,535 이하의 정수를 저장할 수 있다.
- uint에는 0 이상 4,294,967,295 이하의 정수를 저장할 수 있다.
- long에는 -9,223,372,036,854,775,808 이상,9,223,372,036,854,775,808이하의 정수를 저장할 수 있다.
- ulong에는 0이상 18,446,744,073,709,551,615 이하의 정수를 저장할 수 있다.
정말 큰 수와 정말 작은 수를 저장하기 위한 유형
유효숫자 일곱자리 수와 그 마이너스승으로도 충분하지 않을 때가 있다.
그 필요에 의해 double과 decimal이있다.
- double에는 土5.0*10의 -324승에서 土7.9*10의 308승에 이르는 수를 15-16자리까지 저장할 수있다.
- decimal에는 土1.0*10의 -28승에서 土7.9*10의28승에 이르는 수를 유효숫자 28-29 자리까지 저장할 수 있다.
리터럴에도 유형이 있다.
어떤 리터럴이든 자동으로 유형이 정해지게 돼 있다.
int myInt = 19.95;
이런식으로 int변수에19.95라는 리터럴을 대입하는 코드를 넣어보면 에러 메시지가 뜬다.
int에 double변수를 대입하는 경우에도 같은 에러가 생긴다. 리터럴 유형을 float로 바꾸고 싶으면 숫자 뒤에 F를 붙이면 되고, decimal로 바꾸고 싶으면 M을 붙이면 된다.
기타 유용한 유형
- char,object
- Q나 7, $같이 문자한 개만 저장해야 할 수도 있는데, 이럴 때 사용한다.
char의 리터럴 값은 작은따옴표로 감싸서 표시한다. (이스케이프 시퀀스도 마찬가지로 작은따옴표로 감싼다.)
- 상속 계층구조 맨 위에 있는 것이 바로 object클래스이다. object로 선언한 변수에는 어떤 값이나 변수, 객체든마음대로 집어넣을 수 있어서 매우 편리하다.
출처 : [http://jieun1995.tistory.com/30]