Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующей таблице перечислены встроенные типы значений 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. В отличие от других встроенных ключевых слов типа, 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>
- Из любого одномерного массива с типом элемента от
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
. Неявные преобразования диапазона не учитываются для преобразований групп методов.