다음을 통해 공유


기본 제공 형식(C# 참조)

다음 표에서는 C# 기본 제공 형식을 나열합니다.

C# 형식 키워드 .NET 형식
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
nint System.IntPtr
nuint System.UIntPtr
long System.Int64
ulong System.UInt64
short System.Int16
ushort System.UInt16

다음 표에서는 C# 기본 제공 참조 형식을 나열합니다.

C# 형식 키워드 .NET 형식
object System.Object
string System.String
delegate System.Delegate
dynamic System.Object

앞의 표에서 왼쪽 열의 C# 형식 키워드(대리자동적제외)는 해당 .NET 형식의 별칭입니다. 서로 교환할 수 있습니다. 예를 들어 다음 선언은 동일한 형식의 변수를 선언합니다.

int a = 123;
System.Int32 b = 123;

dynamic 형식은 object비슷합니다. 주요 차이점은 다음과 같습니다.

  • dynamic 식에 대한 작업은 컴파일 시간이 아니라 런타임에 바인딩됩니다.
  • new dynamic()사용할 수 없습니다.
  • dynamic 형식에서 형식을 파생시킬 수 없습니다.

delegate 키워드는 System.Delegate파생된 형식을 선언합니다. System.Delegate 형식은 추상 형식입니다.

void 키워드는 형식이 없음을 나타냅니다. 값을 반환하지 않는 메서드의 반환 형식으로 사용합니다.

C# 언어에는 System.Span<T>System.ReadOnlySpan<T> 형식에 대한 특수한 규칙이 포함되어 있습니다. 이러한 형식에 해당하는 C# 키워드가 없으므로 이러한 형식은 기본 제공 형식으로 분류되지 않습니다. C# 언어는 배열 형식과 문자열 형식에서 Span<T>ReadOnlySpan<T>암시적 변환을 정의합니다. 이러한 변환은 Span 형식을 보다 자연스러운 프로그래밍 시나리오에 통합합니다. 다음의 변환은 암시적 범위 변환로 정의됩니다.

  • 요소 형식이 E부터 System.Span<E>까지인 모든 1차원 배열에서
  • 요소 형식이 E인 1차원 배열에서 System.ReadOnlySpan<U>로의 변환에서, EU로 공변성 변환 또는 동일 변환을 가질 때
  • System.Span<E>부터 System.ReadOnlySpan<U>까지, EU로 공변 변환 또는 동일 변환을 가질 때
  • System.ReadOnlySpan<E>에서 System.ReadOnlySpan<U>로, EU에 대한 공분산 변환 또는 동일 변환이 있을 때
  • string부터 System.ReadOnlySpan<char>까지

컴파일러는 적용 가능한 암시적 범위 변환 있는 사용자 정의 변환을 무시하지 않습니다. 암시적 범위 변환은 this 한정자가 있는 매개 변수인 확장 메서드의 첫 번째 인수에 적용할 수 있습니다. 암시적 범위 변환은 메서드 그룹 변환에 고려되지 않습니다.

참고