Partilhar via


Tipos incorporados (referência de C#)

A tabela a seguir lista os tipos de valor internos do C#:

Palavra-chave do tipo C# Tipo .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 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 a System.Span<E>
  • De qualquer matriz unidimensional com tipo de elemento E a System.ReadOnlySpan<U>, quando E tem conversão de covariância ou uma conversão de identidade para U
  • De System.Span<E> a System.ReadOnlySpan<U>, quando E tem uma conversão de covariância ou uma conversão de identidade para U
  • De System.ReadOnlySpan<E> a System.ReadOnlySpan<U>, quando E tem uma conversão por covariância ou uma conversão de identidade para U
  • De string a System.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.

Ver também