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