short(C# 참조)
short 키워드는 다음 표에 표시된 크기와 범위에 따라 값을 저장하는 정수 계열 데이터 형식을 나타냅니다.
형식 |
범위 |
크기 |
.NET Framework 형식 |
---|---|---|---|
short |
-32,768 ~ 32,767 |
부호 있는 16비트 정수 |
리터럴
다음 예제에서와 같이 short 변수를 선언하고 초기화할 수 있습니다.
short x = 32767;
앞의 선언에서 정수 리터럴 32767은 암시적으로 int에서 short로 변환됩니다.정수 리터럴이 short 저장소 위치에 맞지 않는 경우 컴파일 오류가 발생합니다.
오버로드된 메서드를 호출하는 경우 캐스트를 사용해야 합니다.예를 들어 다음과 같이 short 및 int 매개 변수를 사용하는 오버로드된 메서드가 있습니다.
public static void SampleMethod(int i) {}
public static void SampleMethod(short s) {}
이 경우, short 캐스트를 사용하면 올바른 형식이 호출됩니다. 예를 들면 다음과 같습니다.
SampleMethod(5); // Calling the method with the int parameter
SampleMethod((short)5); // Calling the method with the short parameter
변환
short에서 int, long, float, double 또는 decimal로의 미리 정의된 암시적 변환이 있습니다.
저장 크기가 더 큰 비 리터럴 숫자 형식은 암시적으로 short로 변환할 수 없습니다. 정수 계열 형식의 저장 크기에 대해서는 정수 계열 형식 표(C# 참조)를 참조하십시오.예를 들어, 다음과 같은 두 개의 short 변수 x 및 y가 있습니다.
short x = 5, y = 12;
이 경우, 다음 대입문에서는 컴파일 오류가 발생합니다. 그 이유는 대입 연산자의 오른쪽에 있는 산술식이 기본적으로 int로 계산되기 때문입니다.
short z = x + y; // Error: no conversion from int to short
이 문제를 해결하려면 캐스트를 사용하십시오.
short z = (short)(x + y); // OK: explicit conversion
대상 변수의 저장소 크기가 같거나 더 클 경우에는 다음과 같은 문을 사용할 수 있습니다.
int m = x + y;
long n = x + y;
부동 소수점 형식에서 short로의 암시적 변환은 없습니다.예를 들어, 다음 문에서 명시적 캐스트를 사용하지 않으면 컴파일러 오류가 발생합니다.
short x = 3.0; // Error: no implicit conversion from double
short y = (short)3.0; // OK: explicit conversion
부동 소수점 형식 및 정수 계열 형식이 함께 사용되는 산술식에 대한 내용은 double 및 float을 참조하십시오.
암시적 숫자 변환 규칙에 대한 자세한 내용은 암시적 숫자 변환 표(C# 참조)를 참조하십시오.
C# 언어 사양
자세한 내용은 C# 언어 사양을 참조하십시오. 이 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.