int (C#-Referenz)int (C# Reference)

int kennzeichnet einen ganzzahligen Typ, der Werte anhand der Größe und des Bereichs speichert, die in der folgenden Tabelle gezeigt werden.int denotes an integral type that stores values according to the size and range shown in the following table.

TypType BereichRange GrößeSize .NET Framework-Typ.NET Framework type StandardwertDefault Value
int -2,147,483,648 bis 2,147,483,647-2,147,483,648 to 2,147,483,647 Eine 32-Bit-Ganzzahl mit VorzeichenSigned 32-bit integer System.Int32 00

LiteraleLiterals

Sie können eine int-Variable deklarieren und initialisieren, indem Sie ihr ein dezimales Literal, ein hexadezimales Literal oder (beginnend mit C# 7) ein binäres Literal zuweisen.You can declare and initialize an int variable by assigning a decimal literal, a hexadecimal literal, or (starting with C# 7) a binary literal to it. Wenn sich das Ganzzahlliteral außerhalb des Bereichs von int befindet (sprich, wenn es kleiner als Int32.MinValue oder größer als Int32.MaxValue ist) tritt ein Kompilierfehler auf.If the integer literal is outside the range of int (that is, if it is less than Int32.MinValue or greater than Int32.MaxValue), a compilation error occurs.

Im folgenden Beispiel werden Ganzzahlen wie 90.946, die als dezimale, hexadezimale und binäre Literale dargestellt werden, den int-Werten zugewiesen.In the following example, integers equal to 90,946 that are represented as decimal, hexadecimal, and binary literals are assigned to int values.

int intValue1 = 90946;
Console.WriteLine(intValue1);
int intValue2 = 0x16342;
Console.WriteLine(intValue2);

int intValue3 = 0b0001_0110_0011_0100_0010;
Console.WriteLine(intValue3);
// The example displays the following output:
//          90946
//          90946
//          90946

Hinweis

Verwenden Sie das Präfix 0x oder 0X zum Kennzeichnen eines hexadezimalen Literals und das Präfix 0b oder 0B zum Kennzeichnen eines binären Literals.You use the prefix 0x or 0X to denote a hexadecimal literal and the prefix 0b or 0B to denote a binary literal. Dezimale Literale haben kein Präfix.Decimal literals have no prefix.

Beginnend mit C#-7, eine Reihe von Features hinzugefügt wurden zur Verbesserung der Lesbarkeit.Starting with C# 7, a couple of features have been added to enhance readability.

  • C#-7.0 ermöglicht die Verwendung des Zeichens Unterstrich _, als Trennzeichen für Ziffern.C# 7.0 allows the usage of the underscore character, _, as a digit separator.
  • 7.2 c# ermöglicht _ als Trennzeichen für ein Literal binäre oder hexadezimale Ziffer nach dem Präfix verwendet werden soll.C# 7.2 allows _ to be used as a digit separator for a binary or hexadecimal literal, after the prefix. Ein decimal-Literal ist nicht berechtigt, auf einem führenden Unterstrich.A decimal literal isn't permitted to have a leading underscore.

Einige Beispiele werden unten gezeigt.Some examples are shown below.

int intValue1 = 90_946;
Console.WriteLine(intValue1);

int intValue2 = 0x0001_6342;
Console.WriteLine(intValue2);

int intValue3 = 0b0001_0110_0011_0100_0010;
Console.WriteLine(intValue3);

int intValue4 = 0x_0001_6342;       // C# 7.2 onwards
Console.WriteLine(intValue4);

int intValue5 = 0b_0001_0110_0011_0100_0010;       // C# 7.2 onwards
Console.WriteLine(intValue5);
// The example displays the following output:
//          90946
//          90946
//          90946
//          90946
//          90946

Ganzzahlliterale können auch ein Suffix enthalten, dass den Typen kennzeichnet, auch wenn es kein Suffix gibt, dass den int-Typ kennzeichnet.Integer literals can also include a suffix that denotes the type, although there is no suffix that denotes the int type. Wenn ein Ganzzahlliteral kein Suffix besitzt, ist sein Typ der erste dieser Typen, in dem sein Wert dargestellt werden kann:If an integer literal has no suffix, its type is the first of the following types in which its value can be represented:

  1. int
  2. uintuint
  3. longlong
  4. ulongulong

In diesen Beispielen ist das Literal 90946 vom Typ int.In these examples, the literal 90946 is of type int.

KonvertierungenConversions

Es gibt eine vordefinierte implizite Konvertierung von int in long, float, double oder decimal.There is a predefined implicit conversion from int to long, float, double, or decimal. Zum Beispiel:For example:

// '123' is an int, so an implicit conversion takes place here:  
float f = 123;  

Es gibt eine vordefinierte implizite Konvertierung von sbyte, byte, short, ushort oder char in int.There is a predefined implicit conversion from sbyte, byte, short, ushort, or char to int. Die folgende Anweisung erzeugt z. B. einen Kompilierungsfehler ohne Umwandlung:For example, the following assignment statement will produce a compilation error without a cast:

long aLong = 22;  
int i1 = aLong;       // Error: no implicit conversion from long.  
int i2 = (int)aLong;  // OK: explicit conversion.  

Beachten Sie auch, dass es keine implizite Konvertierung von Gleitkomma-Datentypen in int gibt.Notice also that there is no implicit conversion from floating-point types to int. Die folgende Anweisung erzeugt z.B. einen Kompilierungsfehler, außer es wird eine explizite Umwandlung verwendet:For example, the following statement generates a compiler error unless an explicit cast is used:

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

Weitere Informationen zu arithmetischen Ausdrücken mit Gleitkomma- und ganzzahligen Typen finden Sie unter float und double.For more information on arithmetic expressions with mixed floating-point types and integral types, see float and double.

C#-ProgrammiersprachenspezifikationC# Language Specification

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

Siehe auchSee Also

Int32
C#-ReferenzC# Reference
C#-ProgrammierhandbuchC# Programming Guide
C#-SchlüsselwörterC# Keywords
Tabelle ganzzahliger TypenIntegral Types Table
Tabelle integrierter TypenBuilt-In Types Table
Tabelle für implizite numerische KonvertierungenImplicit Numeric Conversions Table
Tabelle für explizite numerische KonvertierungenExplicit Numeric Conversions Table