Training
Module
Het juiste gegevenstype in uw C#-code kiezen - Training
Kies het juiste gegevenstype voor uw code uit verschillende basistypen die in C# worden gebruikt.
Deze browser wordt niet meer ondersteund.
Upgrade naar Microsoft Edge om te profiteren van de nieuwste functies, beveiligingsupdates en technische ondersteuning.
.NET biedt een reeks numerieke gehele getallen en primitieven met drijvende komma, evenals:
.NET ondersteunt zowel ondertekende als niet-ondertekende typen 8-bits, 16-bits, 32-bits, 64-bits en 128-bits gehele getallen, die worden vermeld in de volgende tabellen.
Typen ondertekende gehele getallen
Type | Grootte (in bytes) | Minimumwaarde | Maximale waarde |
---|---|---|---|
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 32-bits proces) | 4 | -2,147,483,648 | 2,147,483,647 |
System.IntPtr (in 64-bits proces) | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
Niet-ondertekende gehele getallen
Type | Grootte (in bytes) | Minimumwaarde | Maximale waarde |
---|---|---|---|
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 32-bits proces) | 4 | 0 | 4,294,967,295 |
System.UIntPtr (in 64-bits proces) | 8 | 0 | 18,446,744,073,709,551,615 |
Elk type geheel getal ondersteunt een set standaardberekeningsoperatoren. De System.Math klasse biedt methoden voor een bredere set wiskundige functies.
U kunt ook met de afzonderlijke bits in een geheel getal werken met behulp van de System.BitConverter klasse.
Notitie
De niet-ondertekende gehele getallen zijn niet cls-compatibel. Zie Taalonafhankelijkheid en taalonafhankelijke onderdelen voor meer informatie.
De System.Numerics.BigInteger structuur is een onveranderbaar type dat een willekeurig groot geheel getal vertegenwoordigt waarvan de waarde in theorie geen boven- of ondergrens heeft. De methoden van het BigInteger type zijn nauw parallel aan de methoden van de andere integrale typen.
.NET bevat de volgende typen drijvende komma:
Type | Grootte (in bytes) | Bereik bij benadering | Primitieve? | Opmerkingen |
---|---|---|---|---|
System.Half | 2 | ±65504 | Nee | Geïntroduceerd 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 | Nee |
De Half, Singleen Double typen ondersteunen speciale waarden die niet-een-getal en oneindigheid vertegenwoordigen. Het type bevat bijvoorbeeld Double de volgende waarden: Double.NaN, Double.NegativeInfinityen Double.PositiveInfinity. U gebruikt de Double.IsNaN, Double.IsInfinityen Double.IsPositiveInfinityDouble.IsNegativeInfinity methoden om te testen op deze speciale waarden.
Elk type drijvende komma ondersteunt een set standaard rekenkundige operatoren. De System.Math klasse biedt methoden voor een bredere set wiskundige functies. .NET Core 2.0 en hoger bevat de System.MathF klasse, die methoden biedt die argumenten van het Single type accepteren.
U kunt ook met de afzonderlijke bits in Double, Singleen Half waarden werken met behulp van de System.BitConverter klasse. De System.Decimal structuur heeft zijn eigen methoden Decimal.GetBits en Decimal(Int32[])voor het werken met de afzonderlijke bits van een decimale waarde, evenals een eigen set methoden voor het uitvoeren van extra wiskundige bewerkingen.
De Doubletypen , Singleen Half typen zijn bedoeld om te worden gebruikt voor waarden die, naar hun aard, onnauwkeurig zijn (bijvoorbeeld de afstand tussen twee sterren) en voor toepassingen waarin een hoge mate van precisie en kleine afrondingsfout niet vereist is. Gebruik het System.Decimal type voor gevallen waarin grotere precisie vereist is en afrondingsfouten moeten worden geminimaliseerd.
Notitie
Het Decimal type elimineert niet de noodzaak voor afronding. In plaats daarvan worden fouten geminimaliseerd vanwege afronding.
De System.Numerics.Complex structuur vertegenwoordigt een complex getal, dat wil gezegd, een getal met een reëel getal en een imaginair getaldeel. Het ondersteunt een standaardset rekenkundige, vergelijkings-, gelijkheids-, expliciete en impliciete conversieoperators, evenals wiskundige, algebraïsche en trigonometrische methoden.
De System.Numerics naamruimte bevat een set .NET SIMD-typen. SIMD-bewerkingen (Single Instruction Multiple Data) kunnen worden geparallelliseerd op hardwareniveau. Dit verhoogt de doorvoer van de gevectoriseerde berekeningen, die gebruikelijk zijn in wiskundige, wetenschappelijke en grafische apps.
De .NET SIMD-typen zijn onder andere:
De Vector2, Vector3en Vector4 typen, die vectoren vertegenwoordigen met 2, 3 en 4 Single waarden.
Twee matrixtypen, Matrix3x2die een 3x2-matrix vertegenwoordigen en Matrix4x4, die een 4x4-matrix vertegenwoordigt.
Het Plane type, dat een vlak in driedimensionale ruimte vertegenwoordigt.
Het Quaternion type, dat een vector vertegenwoordigt die wordt gebruikt om driedimensionale fysieke rotaties te coderen.
Het Vector<T> type, dat een vector van een opgegeven numeriek type vertegenwoordigt en een brede set operators biedt die profiteren van SIMD-ondersteuning. Het aantal exemplaren Vector<T> is vast, maar de waarde Vector<T>.Count ervan is afhankelijk van de CPU van de computer, waarop code wordt uitgevoerd.
Notitie
Het Vector<T> type is opgenomen in .NET Core en .NET 5+, maar niet .NET Framework. Als u .NET Framework gebruikt, installeert u het NuGet-pakket System.Numerics.Vectors om toegang te krijgen tot dit type.
De SIMD-typen worden zodanig geïmplementeerd dat ze kunnen worden gebruikt met hardware of JIT-compilers die niet met SIMD zijn ingeschakeld. Als u wilt profiteren van SIMD-instructies, moeten uw 64-bits apps worden uitgevoerd door de runtime die gebruikmaakt van de RyuJIT-compiler, die is opgenomen in .NET Core en in .NET Framework 4.6 en latere versies. Er wordt SIMD-ondersteuning toegevoegd bij het richten op 64-bits processors.
Zie SimD-versnelde numerieke typen gebruiken voor meer informatie.
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven:
Training
Module
Het juiste gegevenstype in uw C#-code kiezen - Training
Kies het juiste gegevenstype voor uw code uit verschillende basistypen die in C# worden gebruikt.
Documentatie
Meer informatie over het bereik, de opslaggrootte en het gebruik voor elk van de integrale numerieke typen.
Numerieke typen drijvende komma - C# reference
Meer informatie over de ingebouwde C#-typen drijvende komma: float, dubbel en decimaal