Hjem » Siste artikler » Variabler og datatyper i C#: slik lagrer du data trygt og forståelig

Variabler og datatyper i C#: slik lagrer du data trygt og forståelig

Hovedillustrasjon
Hovedillustrasjon. Foto: Daniil Komov / Pexels.

Hvis du vil utvikle deg som programmerer, må du forstå hvordan språket ditt håndterer data. I C# skjer det gjennom variabler og datatyper, og god intuisjon her gjør koden både sikrere og lettere å lese.

I denne artikkelen går vi gjennom hva variabler og datatyper er i C#, hvordan du bruker dem i praksis og hvilke valg som er fornuftige i små og mellomstore prosjekter.

Hva er en variabel egentlig

En variabel er et navn du gir et stykke data slik at du kan bruke det flere steder i programmet. Tenk på det som en merkelapp på en boks, der boksen inneholder en verdi og etiketten er variabelnavnet.

I C# må du alltid oppgi hvilken type data boksen skal inneholde. Det gjør koden mer forutsigbar, og kompilatoren kan fange opp feil før programmet kjører.

De viktigste innebygde datatypene

C# har mange typer, men du kommer langt i starten med noen få grunnleggende. Her er noen av de mest brukte:

  • int: heltall, for eksempel 0, 42, -7
  • double: desimaltall med flyttallspresisjon, for eksempel 3.14
  • decimal: desimaltall med høy presisjon, ofte brukt til penger
  • bool: sant/usant (true/false)
  • char: ett enkelt tegn, for eksempel ‘A’
  • string: tekst, for eksempel “Hei verden”

Disse typene kalles ofte primitive eller grunnleggende, og de dukker opp i nesten alle C#-prosjekter, uansett størrelse.

Slik deklarerer og bruker du variabler

For å opprette en variabel i C#, skriver du først typen, så navnet og eventuelt en startverdi. Eksempel:

int alder = 28;

Du kan endre verdien senere, så lenge den nye verdien passer til samme type:

alder = 29;

Gode navn gjør koden mye tydeligere

Navnet på variabelen bør beskrive hva den faktisk representerer. Unngå navn som x, y og temp i vanlig forretningslogikk, og velg heller noe konkret:

  • kundeAlderi stedet fora
  • totalPrisi stedet fort
  • erAktivi stedet forflag

Når du leser koden om tre måneder, vil meningsfulle variabelnavn spare deg for mye tid.

Når bør du bruke hvilken type

Det finnes ofte flere mulige typer for samme informasjon, men noen valg er mer hensiktsmessige enn andre. Her er noen praktiske tommelfingerregler:

  • Brukintfor tellinger, antall, indeks i lister og liknende.
  • Brukboolfor «ja/nei»-informasjon, som erInnlogget eller harTilgang.
  • Brukdecimalfor priser og pengebeløp på grunn av bedre presisjon.
  • Brukstringfor tekst du ikke skal regne med, som navn og adresser.

Hvis du er usikker på talltype, er int ofte et trygt utgangspunkt for heltall og decimal et godt valg for penger.

Verdityper og referansetyper

I C# finnes det to hovedkategorier datatyper: verdityper og referansetyper. Forskjellen er hvordan data lagres og kopieres.

Verdityper(som int, bool og double) kopieres når du tilordner dem til en ny variabel. Endring av kopien påvirker ikke originalen.

Referansetyper(som string-objekter, lister og egne klasser) peker til data et annet sted i minnet. Hvis to variabler peker til samme objekt, kan endringer via den ene variabelen påvirke det du ser via den andre.

Et lite eksempel på forskjellen

Tematisk illustrasjon
Tematisk illustrasjon. Foto: Stanislav Kondratiev / Pexels.

Se på dette tankeeksempelet:

  • Setter duint a = 5;og deretterint b = a;, har a og b hver sin kopi av tallet 5.
  • Setter duPerson p1 = new Person();ogPerson p2 = p1;, peker begge til samme Person-objekt.

For nybegynnere er det ofte nok å vite at klasser vanligvis er referansetyper, mens de fleste grunnleggende tall- og boolske typer er verdityper.

Bruk av var og når du bør oppgi typen selv

C# har et nøkkelord som hetervarsom lar kompilatoren gjette typen ut fra høyresiden. For eksempel:

var navn = “Ola”;

Her blir navn en string, fordi høyresiden er en tekstverdi. Dette kan gjøre koden kortere, men misbruk kan gjøre den vanskeligere å forstå.

En enkel regel for var

Som hovedregel er var greit når typen er helt åpenbar fra høyresiden, for eksempel:

  • var kundeListe = new List<Kunde>();
  • var belop = 199.0m;

Hvis det ikke er tydelig hvilken type det blir, eller hvis høyresiden er en metode som ikke sier så mye i navnet sitt, er det tryggere å skrive typen eksplisitt.

Konstanter og readonly for verdier som ikke skal endres

Noen verdier skal aldri endres etter at programmet starter, for eksempel maks antall forsøk eller standard moms-sats. Da kan du brukeconstellerreadonly.

constbrukes når verdien er kjent på forhånd og virkelig aldri skal endres.readonlykan settes i konstruktøren, men ikke etterpå. Begge gjør intensjonen din tydelig: dette er en verdi som ikke skal endres senere i koden.

Vanlige feil og hvordan du unngår dem

En typisk kilde til feil er å blande typer som ikke passer naturlig sammen, for eksempel å bruke double til pengebeløp og oppleve små avrundingsavvik.

En annen klassiker er å bruke string til alt, fordi det «alltid funker». Det gjør det vanskelig å validere data og kan gi overraskelser når du senere prøver å gjøre beregninger.

For å unngå dette, spør deg selv: «Hva er dette egentlig?» Når du velger type, forsøk å representere virkeligheten så nøyaktig som mulig i koden.

Slik øver du på variabler og datatyper i C#

For å bli tryggere kan du lage små konsollprogrammer som leser inn data fra tastaturet, lagrer det i passende typer og gjør en enkel beregning eller beslutning basert på det.

Eksempler du kan prøve:

  • Et lite program som regner ut totalpris med rabatt og moms.
  • En «gjet tall»-lek som holder styr på antall forsøk.
  • Et program som leser inn navn og alder, og skriver en tilpasset hilsen.

Når du planlegger slike minioppgaver, start alltid med å spørre: Hvilke data trenger jeg, og hva slags type passer best til hver verdi?

Oppsummering: tenk på typer som en del av designet

Variabler og datatyper i C# handler ikke bare om syntaks. De er en viktig del av hvordan du modellerer problemet ditt og kommuniserer med andre utviklere, og med deg selv i fremtiden.

Hvis du velger gode typer og meningsfulle navn tidlig, blir det enklere å utvide, feilsøke og refaktorere koden senere. Det er en investering som lønner seg for hvert prosjekt du gjør større enn et lite eksperiment.

0 kommentarer