long (C#-Referenz)

Das long-Schlüsselwort kennzeichnet einen ganzzahligen Typ, in dem Werte entsprechend der Größe und dem Bereich in der folgenden Tabelle gespeichert werden.

Typ

Bereich

Größe

.NET Framework-Typ

long

-9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807

64-Bit-Ganzzahl mit Vorzeichen

System.Int64

Literale

Eine long-Variable kann wie im folgenden Beispiel deklariert und initialisiert werden:

long long1 = 4294967296;

Wenn ein Ganzzahlliteral kein Suffix besitzt, entspricht sein Typ dem ersten der folgenden Typen, mit dem sein Wert dargestellt werden kann: int, uint, long, ulong.Im vorangehenden Beispiel ist das Literal vom Typ long, da es den Bereich von uint überschreitet. (Informationen zu den Speichergrößen ganzzahliger Typen finden Sie unter Tabelle ganzzahliger Typen (C#-Referenz).)

Folgendermaßen können Sie auch das Suffix L mit dem long-Typ verwenden:

long long2 = 4294967296L;

Bei Verwendung des Suffixes L wird der Typ des Ganzzahlliterals abhängig von seiner Größe entweder als long oder als ulong festgelegt.In diesem Fall wird long verwendet, da dessen Bereich kleiner ist als der von ulong.

Suffixe werden häufig beim Aufrufen überladener Methoden eingesetzt.Betrachten Sie z. B. die folgenden überladenen Methoden, die den long-Parameter und den int-Parameter verwenden:

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

Durch das Suffix L wird sichergestellt, dass der richtige Typ aufgerufen wird. Beispiel:

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

Sie können den Typ long zusammen mit anderen numerischen ganzzahligen Typen in demselben Ausdruck verwenden. In diesem Fall wird der Ausdruck als long (bzw. in relationalen oder booleschen Ausdrücken als bool) ausgewertet.Der folgende Ausdruck wird beispielsweise als long ausgewertet:

898L + 88
HinweisHinweis

Der Kleinbuchstabe "l" kann ebenfalls als Suffix verwendet werden.In diesem Fall wird jedoch eine Compilerwarnung generiert, da der Buchstabe "l" leicht mit der Ziffer "1" verwechselt werden kann. Verwenden Sie zur besseren Unterscheidung den Großbuchstaben "L".

Weitere Informationen über arithmetische Ausdrücke aus Gleitkomma- und ganzzahligen Typen finden Sie unter float und double.

Konvertierungen

Es erfolgt eine vordefinierte implizite Konvertierung von long in float, double oder decimal.Andernfalls muss eine Typumwandlung durchgeführt werden.Ohne explizite Typumwandlung wird durch die folgende Anweisung z. B. ein Kompilierungsfehler generiert:

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

Es erfolgt eine vordefinierte implizite Konvertierung von sbyte, byte, short, ushort, int, uint oder char in long.

Beachten Sie auch, dass Gleitkommatypen nicht implizit in long konvertiert werden.Durch die folgende Anweisung wird z. B. ein Compilerfehler erzeugt, sofern keine explizite Typumwandlung stattfindet:

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

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in der C#-Sprachspezifikation. Die Sprachspezifikation ist die verbindliche Quelle für die Syntax und Verwendung von C#.

Siehe auch

Referenz

C#-Schlüsselwörter

Tabelle ganzzahliger Typen (C#-Referenz)

Tabelle integrierter Typen (C#-Referenz)

Tabelle für implizite numerische Konvertierungen (C#-Referenz)

Tabelle für explizite numerische Konvertierungen (C#-Referenz)

Int64

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz