Gegevenstypen in C#: Double, geheel getal, zwevend, teken

⚡ Slimme samenvatting

In C# definiëren gegevenstypen welke soorten waarden een variabele kan bevatten, variërend van gehele getallen en drijvende-komma getallen tot Booleaanse waarden en tekenreeksen, en ze bepalen hoeveel geheugen elke variabele reserveert tijdens de uitvoering van het programma.

  • 🔢 Integertypen: Het sleutelwoord Int32 (int) slaat gehele getallen zoals 10, 20 of 30 op binnen een vast geheugenbereik.
  • 🔣 Zwevende-komma-typen: Double en float bevatten decimale waarden, terwijl decimal een hogere precisie biedt voor financiële berekeningen.
  • ☑️ Booleaans type: Het Booleaanse sleutelwoord slaat alleen de waarde 'waar' of 'onwaar' op en stuurt voorwaardelijke logica aan.
  • 🔤 Teksttypen: Een `char` bevat één enkel teken, terwijl een `string` een reeks tekens als tekst kan opslaan.
  • 🧩 Waarde versus referentie: Waardetypen slaan gegevens rechtstreeks op, terwijl referentietypen zoals string een geheugenadres opslaan.
  • 🤖 AI-assistentie: GitHub Copilot en ML.NET brengen code-suggesties en machine learning naar C#-typeverwerking.

Gegevenstypen in C#

Wat zijn gegevenstypen in C#?

De C#-taal wordt geleverd met een reeks basisgegevenstypen. Deze gegevenstypen worden gebruikt om waarden op te bouwen die binnen een applicatie worden gebruikt. Laten we eens kijken naar de basisgegevenstypen die beschikbaar zijn in C#. Voor elk voorbeeld zullen we alleen de hoofdfunctie in ons Program.cs-bestand wijzigen.

1) geheel getal

Een Integer-gegevenstype wordt gebruikt om met getallen te werken. In dit geval zijn de getallen gehele getallen zoals 10, 20 of 30. In C# wordt het gegevenstype aangeduid met de Int32 trefwoord. Hieronder ziet u een voorbeeld van hoe dit datatype kan worden gebruikt. In ons voorbeeld definiëren we een Int32-variabele met de naam num. Vervolgens wijzen we een geheel getal-waarde toe aan de variabele en geven deze vervolgens dienovereenkomstig weer.

Gehele gegevenstypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   Int32 num=30;
   Console.Write(num);  
   
   Console.ReadKey();
  }
 }
}

Code Uitleg:-

  1. Het gegevenstype Int32 is gespecificeerd om een ​​Integer-variabele met de naam num te declareren. De variabele krijgt dan de waarde 30 toegewezen.
  2. Ten slotte wordt de functie console.write gebruikt om het nummer op de console weer te geven.

Als de bovenstaande code correct is ingevoerd en het programma succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven.

Output:

Gehele gegevenstypen in C#

Uit de uitvoer kunt u duidelijk zien dat de Integer-variabele met de naam num in de console werd weergegeven

2) Double

Een double datatype wordt gebruikt om met decimalen te werken. In dit geval zijn de getallen gehele getallen zoals 10.11, 20.22 of 30.33. In C# wordt het datatype aangeduid met het trefwoord "Double“. Hieronder ziet u een voorbeeld van dit gegevenstype.

In ons voorbeeld definiëren we een dubbele variabele genaamd num. Vervolgens wijzen we een Double waarde aan de variabele toevoegen en deze vervolgens dienovereenkomstig weergeven.

Double Gegevenstypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 { 
  static void Main(string[] args) 
  {
   double num=30.33;
   Console.Write(num); 
   
   Console.ReadKey();
  }
 }
}

Code Uitleg:-

  1. Het gegevenstype double wordt opgegeven om een ​​double-type te declareren variabele genaamd num. Aan de variabele wordt dan de waarde 30.33 toegekend.
  2. Ten slotte wordt de functie console.write gebruikt om het nummer op de console weer te geven.

Als de bovenstaande code correct is ingevoerd en het programma succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven.

Output:

Double Gegevenstypen in C#

Uit de uitvoer kunt u duidelijk zien dat de dubbele variabele met de naam num in de console werd weergegeven

3) Booleaanse waarde

Er wordt een Booleaans gegevenstype gebruikt om met Booleaanse waarden van te werken goed en fout. In C# wordt het datatype aangegeven met het Booleaanse sleutelwoord. Hieronder ziet u een voorbeeld van hoe dit datatype kan worden gebruikt.

In ons voorbeeld definiëren we een Booleaanse variabele met de naam 'status'. We zullen dan een Booleaanse waarde aan de variabele toewijzen en deze vervolgens dienovereenkomstig weergeven.

Booleaanse gegevenstypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
  { 
   static void Main(string[] args) 
   {
    Boolean status=true;
    Console.Write(status);
    
    Console.ReadKey();
   }
  }
}

Code Uitleg:-

  1. Het Booleaanse gegevenstype wordt gespecificeerd om een ​​Booleaanse variabele met de naam 'status' te declareren. Aan de variabele wordt vervolgens de waarde true/false toegewezen.
  2. Ten slotte wordt de functie console.write gebruikt om de Booleaanse waarde aan de console weer te geven.

Als de bovenstaande code correct is ingevoerd en het programma succesvol is uitgevoerd, wordt de uitvoer weergegeven.

Output:

Booleaanse gegevenstypen in C#

Uit de uitvoer kunt u duidelijk zien dat de Booleaanse variabele die gelijk is aan true in de console werd weergegeven

4) Tekenreeks

Er wordt een String-gegevenstype gebruikt om met String-waarden te werken. In C# wordt het datatype aangegeven met het trefwoord 'String'. Hieronder ziet u een voorbeeld van dit gegevenstype.

In ons voorbeeld definiëren we een String-variabele met de naam 'message'. Vervolgens wijzen we een String-waarde toe aan de variabele en geven deze vervolgens dienovereenkomstig weer.

Tekenreeksgegevenstypen in C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class program
 {
  static void Main(string[] args)
  {
   String message="Hello";
   Console.Write(message);
   
   Console.ReadKey();
  }
 }
}

Code Uitleg:-

  1. Het gegevenstype String is opgegeven om een ​​stringvariabele met de naam message te declareren. De variabele krijgt dan de waarde ‘Hallo’ toegewezen.
  2. Ten slotte wordt de functie console.write gebruikt om de tekenreekswaarde weer te geven aan de console.

Als de bovenstaande code correct is ingevoerd en het programma succesvol is uitgevoerd, wordt de uitvoer weergegeven.

Output:

Tekenreeksgegevenstypen in C#

Uit de uitvoer kunt u duidelijk zien dat de String-variabele met de naam message in de console werd weergegeven

Complete lijst van C#-datatypen

De vier bovenstaande voorbeelden behandelen de meest voorkomende typen, maar C# biedt een volledige set ingebouwde waardetypen. Elk type reserveert een vaste hoeveelheid geheugen en accepteert een specifiek bereik aan waarden. Door het kleinste type te kiezen dat veilig bij uw gegevens past, blijft een programma efficiënt.

Data type Grootte Bereik / Description
byte 1 bytes 0 tot 255
kort 2 bytes -32,768 naar 32,767
int (Int32) 4 bytes -2,147,483,648 naar 2,147,483,647
lang 8 bytes Zeer grote hele getallen (±9.2 quintiljoen)
drijven 4 bytes Decimalen met een nauwkeurigheid van ongeveer 6-7 cijfers
verdubbelen 8 bytes Decimalen met een nauwkeurigheid van ongeveer 15-16 cijfers
decimale 16 bytes Zeer nauwkeurige decimale getallen (28-29 cijfers) voor geld
verkolen 2 bytes Een enkel Unicode-teken
bool 1 bytes waar of niet waar

Naast deze waardetypen is het stringtype het meest gebruikte referentietype en slaat het een reeks tekens van willekeurige lengte op. Het kiezen van een geschikt type voorkomt overloopfouten en onnodig geheugengebruik.

Waardetypen versus referentietypen in C#

Elk C#-datatype valt in een van de twee groepen: waardetypen en referentietypen. Dit onderscheid bepaalt hoe C# de gegevens opslaat en hoe een variabele zich gedraagt ​​wanneer je deze kopieert of doorgeeft aan een methode.

  • Waardetypen: Deze slaan de daadwerkelijke gegevens direct op, meestal op de stack. int, double, bool, char, opsomming, en struct zijn waardetypen. Het toewijzen van de waarde aan de ene variabele aan de andere kopieert de waarde, waardoor de twee variabelen onafhankelijk blijven.
  • Referentietypen: Deze slaan een referentie (een geheugenadres) op die verwijst naar gegevens op de heap. Strings, objecten, arrays en klasse-instanties zijn referentietypen. Bij het kopiëren van een referentievariabele wordt alleen het adres gekopieerd, waardoor beide variabelen hetzelfde object delen.

Een variabele van een waardetype kan nooit null zijn, omdat deze altijd een waarde bevat, terwijl een niet-geïnitialiseerd referentietype standaard null is. Inzicht in dit verschil helpt je te voorspellen hoe wijzigingen in gegevens door een programma stromen.

Typeconversie in C#

In C# is het vaak nodig om een ​​waarde van het ene gegevenstype naar het andere om te zetten, bijvoorbeeld om gebruikersinvoer, die altijd tekst is, om te zetten in een getal. Dit proces wordt typeconversie genoemd en vindt op drie belangrijke manieren plaats.

  • Impliciete conversie: De compiler converteert automatisch wanneer er geen risico is op gegevensverlies, zoals bij het toewijzen van een int aan een double. Er is geen speciale syntaxis vereist.
  • Expliciete conversie (typeconversie): Je plaatst het doeltype tussen haakjes, bijvoorbeeld (int)myDoubleBij het casten kan er data verloren gaan — het converteren van een double naar een int laat het decimale deel weg — dus je accepteert dat risico bewust.
  • Hulpmethoden: De Convert-klasse (Convert.ToInt32) en de Parse-methode (int.Parse) van elk type zetten tekenreeksen om in getallen, terwijl ToString waarden weer omzet in leesbare tekst.

Door de juiste conversie te kiezen, blijven de gegevens accuraat en worden runtimefouten voorkomen wanneer de gegevenstypen aan beide zijden van een toewijzing niet overeenkomen.

Veelgestelde vragen

Float, double en decimal slaan allemaal decimale getallen op, maar verschillen in precisie en grootte. Float gebruikt 4 bytes voor ongeveer 7 cijfers, double gebruikt 8 bytes voor ongeveer 15 cijfers en decimal gebruikt 16 bytes voor zeer nauwkeurige financiële waarden.

Er is geen wezenlijk verschil. `int` is een C#-alias voor het `System.Int32`-type van .NET, dus `int` en `Int32` compileren naar exact hetzelfde. De meeste ontwikkelaars schrijven `int` voor de beknoptheid, terwijl `Int32` het onderliggende frameworktype expliciet maakt.

String is een referentietype, omdat het een verwijzing opslaat naar tekengegevens die op de heap zijn opgeslagen. Het gedraagt ​​zich echter in één opzicht als een waardetype: strings zijn onveranderlijk, dus elke wijziging creëert een nieuw stringobject in plaats van het oude te bewerken.

Een nullable type maakt het mogelijk dat een waardetype zoals int of bool ook null kan bevatten, aangegeven met een vraagteken erachter, bijvoorbeeld int?. Dit is handig voor optionele gegevens en databasevelden, waar een ontbrekende waarde duidelijk moet worden weergegeven, anders dan nul of false.

Een char bevat precies één Unicode-teken en gebruikt enkele aanhalingstekens, zoals 'A'. Een string bevat een reeks van nul of meer tekens en gebruikt dubbele aanhalingstekens. Een char is een waardetype, terwijl een string een referentietype is.

`var` bepaalt het type van een variabele tijdens het compileren, en dat type wordt vervolgens vastgelegd met volledige IntelliSense-ondersteuning. `dynamic` stelt de typecontrole uit tot de runtime, waardoor typefouten pas tijdens de uitvoering aan het licht komen. Gebruik `var` voor veiligheid en `dynamic` voor flexibele scenario's waarbij het type pas later wordt bepaald.

Ja. GitHub Copilot suggereert typedeclaraties, conversies en standaardcode binnen Visual Studio. Visual Studio CodeHet kan een geschikt numeriek type aanbevelen of parseercode genereren, maar u moet de uitvoer controleren, aangezien suggesties mogelijk geen rekening houden met precisieproblemen of overloopfouten.

Ja. ML.NET koppelt C#-datatypen aan modelkenmerken, waarbij numerieke typen zoals float en double worden gebruikt voor trainingsdata en string voor tekst. Sterk getypeerde dataklassen beschrijven elke kolom, waardoor machine learning-modellen naadloos integreren in C#-applicaties.

Vat dit bericht samen met: