Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A tabela a seguir lista os tipos de valor interno em C#:
| Palavra-chave do tipo C# | Tipo de .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 |
A tabela a seguir lista os tipos de referência internos do C#:
| Palavra-chave do tipo C# | Tipo de .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 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 dynamic tipo é semelhante a object. As diferenças principais são:
- As operações em uma
dynamicexpressão são associadas em runtime, não em tempo de compilação. - Você não pode usar
new dynamic(). - Você não pode derivar um tipo do
dynamictipo.
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 internos, 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 associação de runtime em vez de ser um alias direto para um tipo .NET específico.
A void palavra-chave 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 tipos e tipos System.Span<T>System.ReadOnlySpan<T> . Esses tipos não são classificados como tipos internos, pois 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 Span tipos em cenários de programação mais naturais. As seguintes conversões são definidas como conversões de intervalo implícita:
- De qualquer matriz unidimensional com tipo
Ede elemento paraSystem.Span<E> - De qualquer matriz unidimensional com tipo
Ede elemento paraSystem.ReadOnlySpan<U>, quandoEtem conversão de covariância ou uma conversão de identidade paraU - De
System.Span<E>paraSystem.ReadOnlySpan<U>, quandoEtem uma conversão de covariância ou uma conversão de identidade paraU - De
System.ReadOnlySpan<E>paraSystem.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 usuário em que exista uma conversão de intervalo implícita aplicável. Conversões de intervalo implícitas podem ser aplicadas ao parâmetro receptor de membros de extensão. O parâmetro receptor é especificado pela extension palavra-chave em um membro de extensão. O parâmetro receptor é o primeiro parâmetro de um método de extensão usando o this modificador. Conversões de intervalo implícitas não são consideradas para conversões de grupo de métodos.