기본 제공 형식(C# 참조)
다음 표에서는 C# 기본 제공 값 형식을 나열합니다.
다음 표에서는 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>
로의 변환에서,E
가U
로 공변성 변환 또는 동일 변환을 가질 때 -
System.Span<E>
부터System.ReadOnlySpan<U>
까지,E
가U
로 공변 변환 또는 동일 변환을 가질 때 -
System.ReadOnlySpan<E>
에서System.ReadOnlySpan<U>
로,E
가U
에 대한 공분산 변환 또는 동일 변환이 있을 때 -
string
부터System.ReadOnlySpan<char>
까지
컴파일러는 적용 가능한 암시적 범위 변환 있는 사용자 정의 변환을 무시하지 않습니다. 암시적 범위 변환은 this
한정자가 있는 매개 변수인 확장 메서드의 첫 번째 인수에 적용할 수 있습니다. 암시적 범위 변환은 메서드 그룹 변환에 고려되지 않습니다.
참고
- 프레임워크 형식 이름(스타일 규칙 IDE0049) 대신 언어 키워드 사용
- C# 형식의 기본값
.NET