Tipos incorporados (referência de C#)
A tabela a seguir lista os tipos de valor internos do C#:
A tabela a seguir lista os tipos de referência internos de C# :
Palavra-chave do tipo C# | Tipo .NET |
---|---|
object |
System.Object |
string |
System.String |
delegate |
System.Delegate |
dynamic |
System.Object |
Nas tabelas anteriores, a palavra-chave de tipo C# da coluna da esquerda (exceto pelos termos delegate e dynamic ) é um alias para o tipo .NET correspondente. Eles são intercambiáveis. Por exemplo, as seguintes declarações declaram variáveis do mesmo tipo:
int a = 123;
System.Int32 b = 123;
O tipo dynamic
é semelhante ao object
. As principais diferenças são:
- As operações em uma expressão
dynamic
são vinculadas em tempo de execução, não em tempo de compilação. - Você não pode usar
new dynamic()
. - Não é possível derivar um tipo do tipo
dynamic
.
A palavra-chave delegate
declara um tipo derivado de System.Delegate. O tipo System.Delegate
é um tipo abstrato.
A palavra-chave void
representa a ausência de um tipo. Você o usa como o tipo de retorno de um método que não retorna um valor.
A linguagem C# inclui regras especializadas para os tipos System.Span<T> e System.ReadOnlySpan<T>. Esses tipos não são classificados como tipos internos, porque não há palavras-chave C# que correspondam a esses tipos. A linguagem C# define conversões implícitas de tipos de matriz e o tipo de cadeia de caracteres para Span<T>
e ReadOnlySpan<T>
. Essas conversões integram tipos Span
em cenários de programação mais naturais. As seguintes conversões são definidas como conversões de intervalo implícitas:
- De qualquer matriz unidimensional com tipo de elemento
E
aSystem.Span<E>
- De qualquer matriz unidimensional com tipo de elemento
E
aSystem.ReadOnlySpan<U>
, quandoE
tem conversão de covariância ou uma conversão de identidade paraU
- De
System.Span<E>
aSystem.ReadOnlySpan<U>
, quandoE
tem uma conversão de covariância ou uma conversão de identidade paraU
- De
System.ReadOnlySpan<E>
aSystem.ReadOnlySpan<U>
, quandoE
tem uma conversão por covariância ou uma conversão de identidade paraU
- De
string
aSystem.ReadOnlySpan<char>
O compilador nunca ignora qualquer conversão definida pelo utilizador onde existe uma conversão implícita de span aplicável . As conversões de span implícitas podem ser aplicadas ao primeiro argumento dos métodos de extensão , o parâmetro com o modificador this
. As conversões de span implícitas não são consideradas para conversões de grupo de método.