Поделиться через


Встроенные типы (справочник по 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>
  • Из любого одномерного массива с типом элемента от E до 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. Неявные преобразования диапазона не учитываются для преобразований групп методов.

См. также