다음을 통해 공유


기본 제공 형식(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키워드입니다. 다른 기본 제공 형식 키워드와 delegate 달리 특정 .NET 형식의 별칭은 아닙니다. 대신 추상 System.Delegate 형식에서 파생되는 사용자 지정 형식을 선언합니다. 마찬가지로 dynamic 특정 .NET 형식에 대한 직접 별칭이 아닌 런타임 바인딩 동작을 나타냅니다.

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>까지

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

참고