Training
Modul
Auswählen des richtigen Datentyps in C#-Code - Training
Wählen Sie den richtigen Datentyp für Ihren Code aus mehreren grundlegenden Typen aus, die in C# verwendet werden.
Dieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
.NET bietet einen Bereich von numerischen Integer- und Gleitkommaprimitiven sowie:
.NET unterstützt sowohl 8-Bit-, 16-Bit-, 32-Bit-, 64-Bit- und 128-Bit-Ganzzahltypen mit und auch ohne Vorzeichen, die in den folgenden Tabellen aufgeführt sind.
Ganzzahlige Typen mit Vorzeichen
Typ | Größe (in Bytes) | Minimalwert | Maximalwert |
---|---|---|---|
System.Int16 | 2 | -32,768 | 32,767 |
System.Int32 | 4 | -2,147,483,648 | 2,147,483,647 |
System.Int64 | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
System.Int128 | 16 | −170,141,183,460,469,231,731,687,303,715,884,105,728 | 170,141,183,460,469,231,731,687,303,715,884,105,727 |
System.SByte | 1 | -128 | 127 |
System.IntPtr (in einem 32-Bit-Prozess) | 4 | -2,147,483,648 | 2,147,483,647 |
System.IntPtr (in einem 64-Bit-Prozess) | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
Ganzzahltypen ohne Vorzeichen
Typ | Größe (in Bytes) | Minimalwert | Maximalwert |
---|---|---|---|
System.Byte | 1 | 0 | 255 |
System.UInt16 | 2 | 0 | 65,535 |
System.UInt32 | 4 | 0 | 4,294,967,295 |
System.UInt64 | 8 | 0 | 18,446,744,073,709,551,615 |
System.UInt128 | 16 | 0 | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
System.UIntPtr (in einem 32-Bit-Prozess) | 4 | 0 | 4,294,967,295 |
System.UIntPtr (in einem 64-Bit-Prozess) | 8 | 0 | 18,446,744,073,709,551,615 |
Jeder Ganzzahltyp unterstützt eine Reihe von arithmetischen Standardoperatoren. Die Klasse System.Math stellt Methoden für mehrere mathematische Funktionen bereit.
Sie können auch mit den einzelnen Bit in einem ganzzahligen Wert arbeiten, indem Sie die System.BitConverter-Klasse verwenden.
Hinweis
Die Ganzzahltypen ohne Vorzeichen sind nicht CLS-kompatibel. Weitere Informationen finden Sie unter Sprachunabhängigkeit und sprachunabhängige Komponenten.
Die System.Numerics.BigInteger-Struktur ist ein unveränderlicher Typ, der eine beliebig große ganze Zahl darstellt, dessen Wert theoretisch keine Ober- und Untergrenze hat. Die Methoden des BigInteger-Typs ähneln im Wesentlichen denen der anderen ganzzahligen Typen.
.NET enthält die folgenden Gleitkommatypen:
Typ | Größe (in Bytes) | Ungefährer Bereich | Primitiv? | Notizen |
---|---|---|---|---|
System.Half | 2 | ±65504 | Nein | Eingeführt in .NET 5. |
System.Single | 4 | ±3.4 x 1038 | Ja | |
System.Double | 8 | ±1.7 × 10308 | Ja | |
System.Decimal | 16 | ±7.9228 x 1028 | Nein |
Die Typen Half, Single und Double unterstützen spezielle Werte, die „not-a-number“ und „infinity“ darstellen. Der Typ Double liefert beispielsweise die folgenden Werte: Double.NaN, Double.NegativeInfinity und Double.PositiveInfinity. Mit den Methoden Double.IsNaN, Double.IsInfinity, Double.IsPositiveInfinity und Double.IsNegativeInfinity können Sie Tests für diese speziellen Werte ausführen.
Jeder Gleitkommatyp unterstützt eine Reihe von arithmetischen Standardoperatoren. Die Klasse System.Math stellt Methoden für mehrere mathematische Funktionen bereit. .NET Core 2.0 und höher enthält die Klasse System.MathF, die Methoden bereitstellt, die Argumente vom Typ Single akzeptieren.
Sie können auch mit den einzelnen Bit in Double-, Single- und Half-Werten arbeiten, indem Sie die System.BitConverter-Klasse verwenden. Die System.Decimal-Struktur verfügt über eigene Methoden, Decimal.GetBits und Decimal(Int32[]), um mit den einzelnen Bit eines Dezimalwerts zu arbeiten, und sie verfügt über einen eigenen Satz an Methoden für die Durchführung einiger zusätzlicher mathematischer Operationen.
Die Typen Double, Single und Half sind dazu gedacht, für Werte verwendet zu werden, die per se unpräzise sind (wie der Abstand zwischen zwei Sternen), und für Anwendungen, in denen kein hoher Genauigkeitsgrad erforderlich ist und geringe Rundungsfehler auftreten dürfen. Verwenden Sie den System.Decimal-Typ in Fällen, in denen eine höhere Genauigkeit erforderlich ist und Rundungsfehler minimiert werden sollen.
Hinweis
Der Typ Decimal ersetzt nicht die Notwendigkeit der Rundung. Stattdessen reduziert er Fehler, die beim Runden auftreten.
Die System.Numerics.Complex-Struktur steht für eine komplexe Zahl, d.h., für eine Zahl mit einem reellen und einem imaginären Teil. Sie unterstützt einen Standardsatz an Operatoren (arithmetisch, Vergleich, Gleichheit, explizite Konvertierung und implizite Konvertierung) sowie mathematische, algebraische und trigonometrische Methoden.
Der System.Numerics-Namespace umfasst einen Satz von SIMD-fähigen .NET-Typen. SIMD-Vorgänge (Single Instruction Multiple Data) lassen sich auf Hardwareebene parallelisieren. Das erhöht den Durchsatz der vektorisierten Berechnungen, die in mathematischen, wissenschaftlichen und grafischen Apps üblich sind.
Die SIMD-fähigen .NET-Typen umfassen Folgendes:
Die Typen Vector2, Vector3 und Vector4, die Vektoren mit 2, 3 und 4 Single-Werten darstellen.
Die zwei Matrixtypen Matrix3x2 und Matrix4x4. Der erste Typ stellt eine 3x2-Matrix und der zweite eine 4x4-Matrix dar.
Den Plane-Typ, der eine Ebene im dreidimensionalen Raum darstellt.
Den Quaternion-Typ, der einen Vektor darstellt, der zum Codieren von dreidimensionalen physischen Drehungen verwendet wird.
Den Vector<T>-Typ, der einen Vektor eines bestimmten numerischen Typs darstellt und mehrere Operatoren bereitstellt, die von der SIMD-Unterstützung profitieren. Die Anzahl von Vector<T>-Instanzen ist fest, aber ihr Wert Vector<T>.Count hängt von der CPU des Computers ab, auf dem der Code ausgeführt wird.
Hinweis
Der Vector<T>-Typ ist in .NET Core sowie .NET 5 und höher, jedoch nicht im .NET Framework enthalten. Wenn Sie das .NET Framework verwenden, müssen Sie das NuGet-Paket System.Numerics.Vectors installieren, um Zugriff auf diesen Typ zu erhalten.
Die SIMD-fähigen Typen sind so implementiert, dass sie mit nicht-SIMD-fähiger Hardware oder JIT-Compilern verwendet werden können. Damit Sie die SIMD-Anweisungen nutzen können, müssen Ihre 64-Bit-Apps von der Runtime ausgeführt werden, die den RyuJIT-Compiler verwendet, der in .NET Core und in .NET Framework 4.6 und höher enthalten ist. Sie fügt SIMD-Unterstützung hinzu, wenn 64-Bit-Prozessoren verwendet werden.
Weitere Informationen finden Sie unter Verwenden von mit SIMD beschleunigter numerischer Typen.
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Training
Modul
Auswählen des richtigen Datentyps in C#-Code - Training
Wählen Sie den richtigen Datentyp für Ihren Code aus mehreren grundlegenden Typen aus, die in C# verwendet werden.