달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2016. 8. 23. 18:17

형식 참조 테이블 프로그래밍/C#2016. 8. 23. 18:17

https://msdn.microsoft.com/ko-kr/library/1dhd7f2x.aspx

기본값 표


1. 다음 표에서는 기본 생성자가 반환하는 값 형식의 기본값을 보여 줍니다.

2. 예를 들어, 다음과 같이 new 연산자를 사용하여 기본 생성자를 호출합니다.


int myInt = new int();


3. 위의 문은 다음 문과 동일한 효과를 가집니다.


int myInt = 0;


4. C#에서는 초기화되지 않은 변수를 사용할 수 없습니다.


값 형식

기본값

bool

false

byte

0

char

'\0'

decimal

0.0M

double

0.0D

enum

식 (E)0으로 계산된 값입니다. 여기서 E는 열거형 식별자입니다.

float

0.0F

int

0

long

0L

sbyte

0

short

0

struct

모든 값 형식 필드를 기본값으로 설정하고 모든 참조 형식 필드를 null로 설정하여 계산된 값입니다.

uint

0

ulong

0

ushort

0




기본 제공 형식 표


1. 다음 표에서는 C#의 기본 제공 형식에 대한 키워드를 보여 줍니다.

2. 이러한 키워드는 System 네임스페이스에 미리 정의된 형식의 별칭입니다.


C# 형식

.NET Framework 형식

bool

System.Boolean

byte

System.Byte

sbyte

System.SByte

char

System.Char

decimal

System.Decimal

double

System.Double

float

System.Single

int

System.Int32

uint

System.UInt32

long

System.Int64

ulong

System.UInt64

개체

System.Object

short

System.Int16

ushort

System.UInt16

string

System.String


설명

1. 위 표에서 object 및 string을 제외한 모든 형식을 단순 형식이라고 합니다.

2. C# 형식 키워드와 그 별칭은 상호 호환이 가능합니다.

3. 예를 들어, 다음 두 선언 중 하나를 사용하여 정수 변수를 선언할 수 있습니다.


int x = 123;
System.Int32 x = 123;


4. 모든 C# 형식의 실제 형식을 표시하려면 GetType() 시스템 메서드를 사용합니다.

5. 예를 들어, 다음 문에서는 myVariable의 형식을 나타내는 시스템 별칭이 표시됩니다.


Console.WriteLine(myVariable.GetType());


6. typeof 연산자를 사용할 수도 있습니다.



정수 계열 형식 표


1. 다음 표에서는 단순 형식의 하위 집합을 구성하는 정수 계열 형식의 크기 및 범위를 보여 줍니다.



형식

범위

크기

sbyte

-128 ~ 127

부호 있는 8비트 정수

byte

0 ~ 255

부호 없는 8비트 정수

char

U+0000 ~ U+ffff

유니코드 16비트 문자

short

-32,768 ~ 32,767

부호 있는 16비트 정수

ushort

0 ~ 65,535

부호 없는 16비트 정수

int

-2,147,483,648 ~ 2,147,483,647

부호 있는 32비트 정수

uint

0 ~ 4,294,967,295

부호 없는 32비트 정수

long

-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

부호 있는 64비트 정수

ulong

0 ~ 18,446,744,073,709,551,615

부호 없는 64비트 정수


2. 정수 리터럴이 나타내는 값이 ulong의 범위를 초과할 경우 컴파일 오류가 발생합니다.



부동 소수점 형식 표


1. 다음 표에서는 부동 소수점 형식의 전체 자릿수와 대략적인 범위를 보여 줍니다.



형식

근사 범위

전체 자릿수 (Precision)

float

±1.5e−45 ~ ±3.4e38

7개의 자릿수

double

±5.0e−324 ~ ±1.7e308

15-16개의 자릿수





값 형식


1. 다음 표에서는 C# 값 형식을 범주별로 보여 줍니다.

값 형식

범주

형식 접미사

bool

Boolean

byte

부호 없음, 숫자, 정수 계열

char

부호 없음, 숫자, 정수 계열

decimal

숫자, decimal

M 또는 m

double

숫자, 부동 소수점

D 또는 d

enum

열거형

float

숫자, 부동 소수점

F 또는 f

int

부호 있음, 숫자, 정수 계열

long

부호 있음, 숫자, 정수 계열

L 또는 l

sbyte

부호 있음, 숫자, 정수 계열

short

부호 있음, 숫자, 정수 계열

struct

사용자 정의 구조체

uint

부호 없음, 숫자, 정수 계열

U 또는 u

ulong

부호 없음, 숫자, 정수 계열

UL 또는 ul

ushort

부호 없음, 숫자, 정수 계열




암시적 숫자 변환 표


1. 다음 표에서는 미리 정의된 암시적 숫자 변환을 보여 줍니다.

2. 메서드 호출, 할당문 등 많은 경우에 암시적 변환이 발생할 수 있습니다.


From

To

sbyte

shortintlongfloatdouble 또는 decimal

byte

shortushortintuintlongulongfloatdouble 또는 decimal

short

intlongfloatdouble 또는 decimal

ushort

intuintlongulongfloatdouble 또는 decimal

int

longfloatdouble 또는 decimal

uint

longulongfloatdouble 또는 decimal

long

floatdouble 또는 decimal

char

ushortint, uint, longulong, float, double 또는 decimal

float

double

ulong

floatdouble 또는 decimal


설명

1. 강도(magnitude)가 아닌 정밀도(Precision)는 int, uint, long, 또는 ulong 에서 float으로, 그리고 long 또는 ulong 에서 double로의 변환에서 손실이 있을 수 있습니다.

2. char 형식으로의 암시적 변환은 없습니다.

3. 부동 소수점 형식과 decimal 형식 사이의 암시적 변환은 없습니다.

4. 상수 식의 값이 대상 형식의 범위에 있는 경우 int 형식의 상수 식을 sbyte, byte, short, ushort, uint 또는 ulong으로 변환할 수 있습니다.




명시적 숫자 변환 표


1. 숫자 형식 간에 암시적 변환이 없는 경우, 임의의 숫자 형식을 다른 숫자 형식으로 변환하기 위해 캐스트 식을 사용하여 명시적 숫자 변환을 수행합니다.

2. 다음 표에서는 이러한 변환을 보여 줍니다.

3. 변환에 대한 자세한 내용은 캐스팅 및 형식 변환(C# 프로그래밍 가이드)를 참조하십시오.



From

To

sbyte

byteushortuintulong 또는 char

byte

Sbyte 또는 char

short

sbyte, byte, ushort, uint, ulong 또는 char

ushort

sbytebyteshort 또는 char

int

sbyte, byte, short, ushort, uint, ulong 또는 char

uint

sbytebyte, short, ushort, int 또는 char

long

sbyte, byte, short, ushort, int, uint, ulong 또는 char

ulong

sbyte, byte, short, ushort, int, uint, long 또는 char

char

sbytebyte 또는 short

float

sbyte, byte, short, ushort, int, uint, long, ulong, char 또는 decimal

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, float 또는 decimal

decimal

sbyte, byte, short, ushort, int, uint, long, ulong, char, float 또는 double


설명

1. 명시적 숫자 변환으로 정밀도가 손실되거나 예외가 throw될 수 있습니다.

2. decimal 값을 정수 계열 형식으로 변환할 경우 이 값은 0에 가장 가까운 정수 계열 값으로 반올림됩니다. 결과로 나타난 정수 계열 값이 대상 형식의 범위를 초과하는 경우 OverflowException이 throw됩니다.

3. double 또는 float 값을 정수 계열 형식으로 변환하면 값이 잘립니다. 결과 정수 계열 값이 대상 값의 범위를 벗어나는 경우 오버플로 검사 컨텍스트에 따라 결과가 다릅니다. 검사된 컨텍스트에서는 OverflowException이 throw되지만 검사되지 않은 컨텍스트에서는 결과가 대상 형식의 지정되지 않은 값입니다.

4. double을 float로 변환하는 경우 double 값은 가장 근사치의 float 값으로 반올림됩니다. double 값이 너무 작거나 커서 대상 형식에 맞지 않는 경우 결과는 0이 되거나 무한대가 됩니다.

5. float 또는 double을 decimal로 변환하는 경우 소스 값은 decimal 형식으로 변환되며 필요한 경우 28번째 소수 자리수 아래는 가장 가까운 수로 반올림됩니다. 원본 값의 값에 따라 다음과 같은 결과가 발생할 수 있습니다.

1) 원본 값이 너무 작아 decimal로 나타낼 수 없는 경우 결과는 0이 됩니다.

2) 원본 값이 NaN(숫자 아님) 또는 무한대이거나 너무 커서 decimal로 나타낼 수 없는 경우 OverflowException이 throw됩니다.

6. decimal을 float 또는 double로 변환하는 경우 decimal 값은 가장 가까운 double 또는 float 값으로 반올림됩니다.

7. 명시적 변환에 대한 자세한 내용은 C# 언어 사양의 명시적 변환을 참조하십시오.

8. 사양에 액세스하는 방법에 대한 자세한 내용은 C# 언어 사양을 참조하십시오.



숫자 결과 형식 지정 표


1. String.Format 메서드를 사용하거나 String.Format을 호출하는 Console.Write 또는 Console.WriteLine 메서드를 통해 숫자 결과의 서식을 지정할 수 있습니다.

2. 서식은 서식 문자열을 사용하여 지정합니다.

3. 다음 표에서는 지원되는 표준 형식 문자열을 보여 줍니다.

4. 형식 문자열의 형식은 Axx입니다.

5. 여기서 A는 형식 지정자이고 xx는 전체 자릿수 지정자입니다.

6. 형식 지정자는 숫자 값에 적용될 형식을 제어하고 전체 자릿수 지정자는 형식이 지정된 출력의 유효 자릿수 또는 소수 자릿수를 제어합니다.

7. 전체 자릿수 지정자 범위는 0-99의 값입니다.

8. 표준 및 사용자 지정 형식 문자열에 대 한 자세한 내용은 .NET Framework의 형식 서식 지정. String.Format 메서드에 대한 자세한 내용은 String.Format을 참조하십시오.



형식 지정자

설명

예제

Output

C 또는 c

통화

Console.Write("{0:C}", 2.5);

Console.Write("{0:C}", -2.5);

$2.50

($2.50)

D 또는 d

Decimal

Console.Write("{0:D5}", 25);

00025

E 또는 e

공학용

Console.Write("{0:E}", 250000);

2.500000E+005

F 또는 f

고정 소수점

Console.Write("{0:F2}", 25);

Console.Write("{0:F0}", 25);

25.00

25

G 또는 g

일반

Console.Write("{0:G}", 2.5);

2.5

N 또는 n

숫자

Console.Write("{0:N}", 2500000);

2,500,000.00

X 또는 x

16진수

Console.Write("{0:X}", 250);

Console.Write("{0:X}", 0xffff);

FA

FFFF



typeof

https://msdn.microsoft.com/ko-kr/library/58918ffs.aspx




캐스팅 및 형식 변환

https://msdn.microsoft.com/ko-kr/library/ms173105.aspx






'프로그래밍 > C#' 카테고리의 다른 글

예외 및 예외 처리  (0) 2016.08.26
파일 시스템 및 레지스트리  (0) 2016.08.25
클래스 및 구조체  (0) 2016.08.05
인터페이스, 이벤트, 인덱서  (0) 2016.08.04
제네릭 요약  (0) 2016.08.02
:
Posted by 지훈2