longo (translation from VPE for Csharp Reference)

The long palavra-chave indica o tipo integral que armazena valores de acordo com o dimensionar e o intervalo mostrado na tabela a seguir.

Type (Tipo)

Intervalo

Size (Tamanho)

Tipo .NET Framework

long

–9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

Inteiro de 64 bit

System.Int64

Literais

Você pode declarar e inicializar um long variável, como neste exemplo:

long long1 = 4294967296;

Quando um literal inteiro não tem nenhum sufixo, seu tipo é o primeiro desses tipos em que seu valor pode ser representado: int, uint, long, ULong.No exemplo anterior, ele é do tipo long porque ele excede o intervalo de uint (see Integral tabela Tipos (referência C#) para os armazenamento tamanhos de tipos integrais).

Você também pode usar o sufixo L com o long Digite como este:

long long2 = 4294967296L;

Quando você usa o sufixo L, o tipo de inteiro literal é determinado para ser um dos long ou ULong de acordo com a seu dimensionar.O caso é long porque ele menor que o intervalo de ULong.

Um uso comum do sufixo é com chamando métodos sobrecarregados.Considere, por exemplo, que o seguinte sobrecarregado a métodos que uso long e int parâmetros:

public static void SampleMethod(int i) {}
public static void SampleMethod(long l) {}

Usar o sufixo L garante que o tipo correto é chamado, por exemplo:

SampleMethod(5);    // Calling the method with the int parameter
SampleMethod(5L);   // Calling the method with the long parameter

Você pode usar o long Digite com outros tipos numéricos integrais na mesma expressão, em que caso a expressão é avaliado sistema autônomo long (ou bool no caso de expressões relacionais ou booliano).Por exemplo, a seguinte expressão avaliará sistema autônomo long:

898L + 88
Observação:

Você também pode usar a letra em minúsculas "l" sistema autônomo um sufixo.No entanto, isso gera um aviso do compilador porque a letra "l" é com com facilidade confundida com o dígito "1". Utilize "L" para maior clareza.

Para obter informações sobre expressões aritméticas com tipos mistos de ponto flutuante e tipos integrais, consulte float and duplo.

Conversões

Há uma conversão implícita predefinida de long para float, duplo, or decimal.Caso contrário, uma conversão deve ser usada.Por exemplo, a demonstrativo a seguir produzirá um erro de compilação sem uma conversão explícita:

int x = 8L;        // Error: no implicit conversion from long to int
int x = (int)8L;   // OK: explicit conversion to int

Há uma conversão implícita predefinida de SByte, byte, curto, ushort, int, uint, or char to long.

Observe também que não há nenhuma conversão implícita de tipos de ponto flutuante para long. Por exemplo, a instrução a seguir gera um erro do compilador, a menos que seja usada uma conversão explícita:

long x = 3.0;         // Error: no implicit conversion from double
long y = (long)3.0;   // OK: explicit conversion

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • 1.3 Tipos e variáveis

  • 4.1.5 Tipos integrais

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

Integral tabela Tipos (referência C#)

Tabela tipos internas (referência C#)

Numérico tabela Conversions (referência C#) implícita

Numérico tabela Conversions (referência C#) explícita 

Int64

Outros recursos

Referência C#