C#데이타 타입

C# 데이타 타입

C#을 포함한 모든 .NET 프로그래밍 언어는 .NET의 Common Type System에 정의된 .NET 데이타 타입을 사용한다. C#은 int, double, string 과 같은 C# 키워드로 데이타 타입을 표현할 수 있으며, 또한 System.Int32, System.Double, System.String 과 같은 .NET 데이타 클래스로 데이타 타입을 표현할 수도 있다. 내부적으로는 C# 컴파일러는 C# 키워드로 된 데이타 타입을 컴파일 후 .NET 데이타 타입으로 변경하게 된다.

C# 데이타 타입.NET 데이타 타입설명
boolSystem.BooleanTrue or False
byteSystem.Byte8비트 unsigned integer
sbyteSystem.SByte8비트 signed integer
shortSystem.Int1616비트 signed integer
intSystem.Int3232비트 signed integer
longSystem.Int6464비트 signed integer
ushortSystem.UInt1616비트 unsigned integer
uintSystem.UInt3232비트 unsigned integer
ulongSystem.UInt6464비트 unsigned integer
floatSystem.Single32비트 single precision 부동소수점 숫자
doubleSystem.Double64비트 double precision 부동소수점 숫자
decimalSystem.Decimal128비트 Decimal
charSystem.Char16비트 유니코드 문자
stringSystem.String유니코드 문자열
System.DateTime날짜와 시간, 별도의 C# 키워드가 없음
objectSystem.Object모든 타입의 기본 클래스로 모든 유형을 포함할 수 있음

C# 리터럴 데이타

C#에서 리터럴(Literal) 데이타를 사용할 때, 별도의 표시가 없는 경우 C# 컴파일러는 int, double, char, string, bool 데이타 타입을 기본 데이타 타입으로 사용한다. 따라서, 특정 데이타 타입을 지정하고 싶으면, 리터럴 데이타뒤에 1~2자의 타입 지정 문자(Suffix)를 추가해야 한다. Suffix는 대소문자 구분이 없다. 즉 decimal을 나타내는 M은 1024M 이나 1024m처럼 사용가능하다. 아래는 디폴트 리터럴 타입과 각 데이타 타입별 Suffix에 대한 예제이다.

디폴트 리터럴 타입

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


C# 리터럴 데이타 타입Suffix (대소문자 모두 가능)예제
longL1024L
uintU1024U
ulongUL1024UL
floatF10.24F
doubleD10.24D 또는 10.24
decimalM10.24M

C# 데이타 타입 예제

예제

// 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);
  • float 데이타 타입은 숫자 뒤에 123.45F와 같이 F를 붙여 double이 아닌 float 타입임을 나타낸다.
  • double 데이타 타입은 숫자 뒤에 123.45M과 같이 M를 붙여 double이 아닌 decimal 타입임을 나타낸다.
  • char 데이타 타입은 인용부호 ' (single quotation)을 사용하여 한 문자를 할당한다.
  • string 데이타 타입은 인용부호 " (double quotation)을 사용하여 문자열을 할당한다.

최대값, 최소값?
숫자형 데이타 타입의 최대값 혹은 최소값을 알아내기 위해서는 .NET 데이타 타입 클래스들의 MaxValue, MinValue 프로퍼티를 사용한다. C# 데이타 타입 키워드 뒤에서도 이러한 프로퍼티를 직접 호출할 수 있다. 즉, int.MaxValue 혹은 Int32.MaxValue가 모두 가능하다.

 

Nullable Type
정수(int)나 날짜(DateTime)와 같은 Value Type은 일반적으로 NULL을 가질 수 없다. C# 2.0에서부터 이러한 타입들에 NULL을 가질 수 있게 하였는데, 이를 Nullable Type이라 부른다. C#에서 물은표(?) int나 DateTime 타입명 뒤에 붙이면 즉, int? 혹은 DateTime? 같이 하면 Nullable Type이 된다. 이는 .NET에서 Nullable<T> 으로 변환된다.

Post a Comment

다음 이전