ULong (translation from VPE for Csharp Reference)

The ulong 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

ulong

0 a 18.446.744.073.709.551.615

Inteiro de 64 bits sem-sinal

System.UInt64

Literais

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

ulong uLong = 9223372036854775808;

Quando um literal inteiro não tem nenhum sufixo, seu tipo é o primeiro desses tipos em que seu valor pode ser representado: int, uint, longo, ulong. No exemplo acima, é do tipo ulong.

Você também pode usar sufixos para especificar o tipo de literal para de acordo com as seguintes regras:

  • Se você usar L ou l, o tipo do literal inteiro será um dos longo or ulong de acordo com seu dimensionar.

    Observação:

    Você 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.

  • Se você usar U ou u, o tipo do literal inteiro será um uint or ulong de acordo com seu dimensionar.

  • Se você usar UL, ul, Ul, uL, LU, lu, Lu ou lU, o tipo de inteiro literal será ulong.

    Por exemplo, a saída de três instruções seguintes serão o tipo de sistema UInt64, que corresponde ao alias ulong:

    Console.WriteLine(9223372036854775808L.GetType());
    Console.WriteLine(123UL.GetType());
    Console.WriteLine((123UL + 456).GetType());
    

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

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

Usando um sufixo com o ulong parâmetro garante que o tipo correto é chamado, por exemplo:

SampleMethod(5);    // Calling the method with the int parameter
SampleMethod(5UL);  // Calling the method with the ulong parameter

Conversões

Há uma conversão implícita predefinida de ulong para float, duplo, or decimal.

Não há nenhuma conversão implícita de ulong a qualquer tipo integral. Por exemplo, a demonstrativo a seguir produzirá um erro de compilação sem uma conversão explícita:

long long1 = 8UL;   // Error: no implicit conversion from ulong

Há uma conversão implícita predefinida de byte, ushort, uint, or char to ulong.

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

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

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

Para obter mais informações em regras de conversão numérica implícito, consulte o Numérico tabela Conversions (referência C#) implícita.

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 

UInt64

Outros recursos

Referência C#