Datatyper i C#: Double, Heltall, Float, Char

⚡ Smart oppsummering

Datatyper i C# definerer hva slags verdier en variabel kan holde, alt fra heltall og flyttall til boolske verdier og strengverdier, og de bestemmer hvor mye minne hver variabel reserverer under programkjøring.

  • 🔢 Heltallstyper: Nøkkelordet Int32 (int) lagrer hele tall som 10, 20 eller 30 innenfor et fast minneområde.
  • 🔣 Flyttalstyper: double og float holder desimalverdier, mens desimal gir høyere presisjon for økonomiske beregninger.
  • ☑️ Boolsk type: Det boolske nøkkelordet lagrer bare sann eller usann og driver betinget logikk.
  • 🔤 Teksttyper: char inneholder et enkelt tegn, og string lagrer en sekvens av tegn som tekst.
  • 🧩 Verdi kontra referanse: Verdityper lagrer data direkte, mens referansetyper som streng lagrer en minneadresse.
  • 🤖 AI-hjelp: GitHub Copilot og ML.NET bringer kodeforslag og maskinlæring til håndtering av C#-typer.

Datatyper i C#

Hva er datatyper i C#?

C#-språket kommer med et sett med grunnleggende datatyper. Disse datatypene brukes til å bygge verdier som brukes i en applikasjon. La oss utforske de grunnleggende datatypene som er tilgjengelige i C#. For hvert eksempel vil vi bare endre hovedfunksjonen i Program.cs-filen vår.

1) Heltall

Datatyper med heltall brukes til å arbeide med tall. I dette tilfellet er tallene hele tall som 10, 20 eller 30. I C# er datatypen merket med Int32 nøkkelord. Nedenfor er et eksempel på hvordan denne datatypen kan brukes. I vårt eksempel vil vi definere en Int32-variabel kalt num. Vi vil da tilordne en heltallsverdi til variabelen og vise den deretter.

Heltallsdatatyper i 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 Forklaring:-

  1. Datatypen Int32 er spesifisert for å deklarere en heltallsvariabel kalt num. Variabelen blir deretter tildelt en verdi på 30.
  2. Til slutt brukes console.write-funksjonen til å vise nummeret til konsollen.

Hvis koden ovenfor er skrevet inn riktig og programmet kjøres vellykket, vil følgende utdata vises.

Utgang:

Heltallsdatatyper i C#

Fra utgangen kan du tydelig se at heltallsvariabelen kalt num ble vist i konsollen

2) Double

En dobbel datatype brukes til å arbeide med desimaler. I dette tilfellet er tallene hele tall som 10.11, 20.22 eller 30.33. I C# er datatypen betegnet med nøkkelordet "Double". Nedenfor er et eksempel på denne datatypen.

I vårt eksempel vil vi definere en dobbel variabel kalt num. Vi vil da tildele en Double verdi til variabelen og vis den deretter.

Double Datatyper i 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 Forklaring:-

  1. Den doble datatypen er spesifisert for å deklarere en dobbel type variabel kalt num. Variabelen blir deretter tildelt en verdi på 30.33.
  2. Til slutt brukes console.write-funksjonen til å vise nummeret til konsollen.

Hvis koden ovenfor er skrevet inn riktig og programmet kjøres vellykket, vil følgende utdata vises.

Utgang:

Double Datatyper i C#

Fra utgangen kan du tydelig se at den doble variabelen kalt num ble vist i konsollen

3) Boolsk

En boolsk datatype brukes til å arbeide med boolske verdier av sant og usant. I C# er datatypen betegnet med det boolske nøkkelordet. Nedenfor er et eksempel på at denne datatypen kan brukes.

I vårt eksempel vil vi definere en boolsk variabel kalt "status". Vi vil da tilordne en boolsk verdi til variabelen og deretter vise den deretter.

Boolske datatyper i 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 Forklaring:-

  1. Den boolske datatypen er spesifisert for å erklære en boolsk variabel kalt "status". Variabelen tildeles deretter verdien sann/falsk.
  2. Til slutt brukes console.write-funksjonen til å vise den boolske verdien til konsollen.

Hvis koden ovenfor er angitt riktig og programmet kjøres vellykket, vil utdataene vises.

Utgang:

Boolske datatyper i C#

Fra utdata kan du tydelig se at den boolske variabelen som er lik sann ble vist i konsollen

4) String

En strengdatatype brukes til å arbeide med strengverdier. I C# er datatypen betegnet med nøkkelordet 'String'. Nedenfor er et eksempel på denne datatypen.

I vårt eksempel vil vi definere en strengvariabel kalt "melding". Vi tilordner deretter en strengverdi til variabelen og viser den deretter.

Strengdatatyper i 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 Forklaring:-

  1. Strengdatatypen er spesifisert for å deklarere en strengvariabel kalt melding. Variabelen blir deretter tildelt verdien "Hello".
  2. Til slutt brukes console.write-funksjonen til å vise strengverdien til konsollen.

Hvis koden ovenfor er angitt riktig og programmet kjøres vellykket, vil utdataene vises.

Utgang:

Strengdatatyper i C#

Fra utgangen kan du tydelig se at strengvariabelen kalt melding ble vist i konsollen

Komplett liste over C#-datatyper

De fire eksemplene ovenfor dekker de vanligste typene, men C# tilbyr et komplett sett med innebygde verdidatatyper. Hver type reserverer en fast mengde minne og aksepterer et spesifikt verdiområde, så å velge den minste typen som trygt passer til dataene dine holder et program effektivt.

Data-type Størrelse Rekkevidde / Description
byte 1 bytes 0 til 255
kort 2 bytes -32,768 til 32,767
int (Int32) 4 bytes -2,147,483,648 til 2,147,483,647
lang 8 bytes Svært store hele tall (±9.2 kvintillioner)
flyte 4 bytes Desimaltall med omtrent 6–7 sifres presisjon
dobbelt 8 bytes Desimaltall med omtrent 15–16 sifres presisjon
desimal 16 bytes Høypresisjonsdesimaler (28–29 sifre) for penger
chariot 2 bytes Et enkelt Unicode-tegn
bool 1 bytes sant eller usant

Ved siden av disse verditypene er strengtypen den mest brukte referansetypen og lagrer en sekvens av tegn av en hvilken som helst lengde. Å velge en passende type forhindrer overløpsfeil og unødvendig minnebruk.

Verdityper vs. referansetyper i C#

Alle C#-datatyper faller inn i en av to grupper: verdityper og referansetyper. Dette skillet styrer hvordan C# lagrer dataene og hvordan en variabel oppfører seg når du kopierer den eller sender den til en metode.

  • Verdityper: Disse lagrer de faktiske dataene direkte, vanligvis på stakken. int, double, bool, char, enum, og struct er verdityper. Å tilordne én variabel til en annen kopierer verdien, slik at de to variablene forblir uavhengige.
  • Referansetyper: Disse lagrer en referanse (en minneadresse) som peker til data på heapen. streng-, objekt-, array- og klasseinstanser er referansetyper. Kopiering av en referansevariabel kopierer bare adressen, slik at begge variablene deler det samme objektet.

En verditypevariabel kan aldri være null fordi den alltid har en verdi, mens en uinitialisert referansetype har standardverdien null. Å forstå denne forskjellen hjelper deg med å forutsi hvordan endringer i data flyter gjennom et program.

Typekonvertering i C#

C# trenger ofte å flytte en verdi fra én datatype til en annen, for eksempel å gjøre brukerinput, som alltid er tekst, om til et tall. Denne prosessen kalles typekonvertering, og det skjer på tre hovedmåter.

  • Implisitt konvertering: Kompilatoren konverterer automatisk når det ikke er noen risiko for datatap, for eksempel når man tilordner et heltall til en double. Ingen spesiell syntaks er nødvendig.
  • Eksplisitt konvertering (casting): Du plasserer måltypen i parentes, for eksempel (int)myDoubleCasting kan miste data – å konvertere en dobbel til et heltall mister desimaldelen – så du aksepterer risikoen bevisst.
  • Hjelpemetoder: Convert-klassen (Convert.ToInt32) og hver types Parse-metode (int.Parse) gjør strenger om til tall, mens ToString gjør verdier om til lesbar tekst igjen.

Å velge riktig konvertering holder dataene nøyaktige og forhindrer kjøretidsfeil når typene på hver side av en tildeling ikke samsvarer.

Spørsmål og svar

Float, double og decimal lagrer alle desimaltall, men de varierer i presisjon og størrelse. Float bruker 4 byte med omtrent 7 sifre, double bruker 8 byte med omtrent 15 sifre, og desimal bruker 16 byte for høypresisjons finansielle verdier.

Det er ingen reell forskjell. int er et C#-alias for .NET System.Int32-typen, så int og Int32 kompilerer til nøyaktig det samme. De fleste utviklere skriver int for korthets skyld, mens Int32 gjør den underliggende rammeverkstypen eksplisitt.

streng er en referansetype fordi den lagrer en referanse til tegndata som ligger på heapen. Den oppfører seg imidlertid som en verditype på én måte: strenger er uforanderlige, så hver endring oppretter et nytt strengobjekt i stedet for å redigere det gamle.

En nullbar type lar en verditype som int eller bool også inneholde null, skrevet med et etterfølgende spørsmålstegn, for eksempel int?. Det er nyttig for valgfrie data- og databasefelt, der en manglende verdi må representeres tydelig fra null eller usann.

Et tegn inneholder nøyaktig ett Unicode-tegn og bruker enkle anførselstegn, for eksempel 'A'. En streng inneholder en sekvens på null eller flere tegn og bruker doble anførselstegn. Et tegn er en verditype, mens en streng er en referansetype.

`var` utleder en variabels type ved kompileringstid, og den typen blir deretter fikset med full IntelliSense-støtte. `dynamic` utsetter typesjekking til kjøretid, slik at typefeil bare dukker opp under utførelse. Bruk `var` for sikkerhet og `dynamic` for fleksible scenarier med sen binding.

Ja. GitHub Copilot foreslår typedeklarasjoner, konverteringer og standardinnstillinger i Visual Studio og Visual Studio CodeDen kan anbefale en passende numerisk type eller generere parsekode, men du bør gjennomgå resultatet, siden forslag kan overse presisjon eller ha problemer med overløp.

Ja. ML.NET tilordner C#-datatyper til modellfunksjoner, ved hjelp av numeriske typer som float og double for treningsdata og string for tekst. Sterkt typede dataklasser beskriver hver kolonne, slik at maskinlæringsmodeller integreres naturlig i C#-applikasjoner.

Oppsummer dette innlegget med: