dlouhé (C#-Reference)
long Klíčové slovo označuje integrálního typu, který ukládá hodnoty podle velikosti a oblasti, které jsou uvedeny v následující tabulce.
Type |
Rozsah |
Size |
typ .NET Framework |
---|---|---|---|
long |
–9, 223 372, 036, 854, 775 808: 9,223,372,036,854,775,807 |
64Bitové celé číslo se znaménkem |
Literály
Můžete deklarovat a inicializovat long proměnné následujícím způsobem:
long long1 = 4294967296;
Po celé literálu nemá žádnou příponu, jeho typ je první z těchto typů, ve kterých lze znázornit jeho hodnota: int, uint, long, ulong.V předchozím příkladu je typu long protože přesahuje rozsah uint (viz Nedílnou tabulky typy (C#-Reference) pro velikosti úložiště nedílnou typů).
Můžete také použít příponu l s long typu, například takto:
long long2 = 4294967296L;
Při použití přípona l typ Celočíselný literál je určena buď se long nebo ulong podle své velikosti.V případě je long protože je menší než rozsah ulong.
Běžné použití přípony je volání metod přetížené.Zvažte například následující přetížení metody, které používají long a int parametry:
public static void SampleMethod(int i) {}
public static void SampleMethod(long l) {}
Pomocí přípony l zaručuje, že správný typ je názvem, například:
SampleMethod(5); // Calling the method with the int parameter
SampleMethod(5L); // Calling the method with the long parameter
Můžete použít long typu s jinými typy číselných nedílnou ve stejném výrazu, ve kterém je případ výraz vyhodnocen jako long (nebo bool z relačních nebo logické výrazy).Například následující výraz vyhodnocen jako long:
898L + 88
[!POZNÁMKA]
Malé písmeno "l" můžete také použít jako příponu.Však toto upozornění kompilátoru generuje protože písmeno "l" snadno zaměnit číslici 1." Z důvodu srozumitelnosti použijte "L".
Informace o aritmetické výrazy s typy nedílnou a smíšené typy s plovoucí desetinnou čárkou, viz plovoucí a dvojité.
Převody
Existuje předdefinované implicitní převod z long na plovoucí, dvojité, nebo desetinné.Jinak se musí použít osazení.Následující příkaz například vytvoří bez explicitní přetypování došlo k chybě kompilace:
int x = 8L; // Error: no implicit conversion from long to int
int x = (int)8L; // OK: explicit conversion to int
Existuje předdefinované implicitní převod z sbyte, bajt, krátké, ushort, int, uint, nebo char na long.
Všimněte si také, že je implicitní převod z typů s plovoucí desetinnou čárkou pro long.Například následující příkaz vygeneruje chybu kompilátoru Pokud explicitní cast:
long x = 3.0; // Error: no implicit conversion from double
long y = (long)3.0; // OK: explicit conversion
Specifikace jazyka C#
Další informace naleznete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.
Viz také
Referenční dokumentace
Nedílnou tabulky typy (C#-Reference)
Předdefinované typy (C#-Reference)
Implicitní číselné tabulky převody (C#-Reference)
Explicitní číselné tabulky převody (C#-Reference)