Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 maioria das palavras-chave do tipo C# da coluna da esquerda são aliases 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
dynamicsã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 delegate palavra-chave é uma palavra-chave de tipo de referência interna que declara um tipo derivado de System.Delegate. Ao contrário das outras palavras-chave de tipo interno, delegate não é um alias para um tipo .NET específico. Em vez disso, ele declara tipos personalizados que derivam do tipo abstrato System.Delegate . Da mesma forma, dynamic representa o comportamento de vinculação de tempo de execução em vez de ser um alias direto para um tipo .NET específico.
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
EaSystem.Span<E> - De qualquer matriz unidimensional com tipo de elemento
EaSystem.ReadOnlySpan<U>, quandoEtem conversão de covariância ou uma conversão de identidade paraU - De
System.Span<E>aSystem.ReadOnlySpan<U>, quandoEtem uma conversão de covariância ou uma conversão de identidade paraU - De
System.ReadOnlySpan<E>aSystem.ReadOnlySpan<U>, quandoEtem uma conversão de covariância ou uma conversão de identidade paraU - De
stringaSystem.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 implícitas de espaço podem ser aplicadas ao parâmetro do recetor dos membros da extensão. O parâmetro receptor é especificado pela extension palavra-chave num membro de extensão. O parâmetro receptor é o primeiro parâmetro de um método de extensão que utiliza o this modificador. As conversões de span implícitas não são consideradas para conversões de grupo de método.