C# Academy · Lektion

Value kontra reference; literals; var-inferens; const/readonly

Lær, hvordan value types adskiller sig fra reference types, hvordan literals og numeriske suffikser fungerer, hvornår De bør bruge var, og hvilken rolle const og readonly spiller.

Lektion 1 af 38 trin

Value kontra reference; literals; var-inferens; const/readonly er en gratis C# Academy-lektion på CoddyKit. Dette er lektion 1 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i C# Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. C# Academy-kurset indeholder 3 lektioner i alt.

Hvorfor typer er vigtige

Mål: Forstå forskellen på værdi- og referencetyper, og hvordan variabler, literaler og konstanter fungerer i almindelig kode.

Værdi kontra reference

Værditype: kopierer data ved tildeling, f.eks. int, bool og struct. Referencetype: kopierer en reference, f.eks. class, array og string.

  • Værdi: sikrere lokale ændringer
  • Reference: delt objektidentitet

Literaler og suffikser

Literaler har typer. Brug suffikser for tydelighed: f (float), m (decimal), L (long).

  • 3.14f → float
  • 10m → decimal (penge)
  • 123L → long

Typeinferens med var

var lader compileren udlede typen fra højresiden. Brug det, når typen er åbenlys; ellers skal du angive typen eksplicit.

const kontra readonly

const: konstant ved kompilering; readonly: angives i konstruktøren eller ved deklarationen.

  • Brug const til faste værdier, f.eks. Pi
  • Brug readonly til værdier, der først kendes under kørsel

Typer i praksis

Se forskellen på værdi- og referenceadfærd, numeriske suffikser, enkel typeinferens med var samt const/readonly i ét lille program.

using System;

// Value type (struct) copies by value
public struct PointS
{
  public int X;
  public int Y;
}

// Reference type (class) copies the reference
public class PointC
{
  public int X;
  public int Y;
}

// Readonly demo class
public class Config
{
  public readonly string Name;
  public Config(string name)
  {
    Name = name; // can set here
  }
}

public class Program
{
  // Compile-time constant
  private const double Pi = 3.14159;

  public static void Main(string[] args)
  {
    // 1) Value vs reference
    PointS a = new PointS { X = 1, Y = 2 };
    PointS b = a;         // copy value
    b.X = 99;
    Console.WriteLine("Value struct a.X = " + a.X); // 1 (unchanged)
    Console.WriteLine("Value struct b.X = " + b.X); // 99

    PointC ac = new PointC { X = 1, Y = 2 };
    PointC bc = ac;       // copy reference
    bc.X = 77;
    Console.WriteLine("Ref class ac.X = " + ac.X);  // 77 (same object)
    Console.WriteLine("Ref class bc.X = " + bc.X);  // 77

    // 2) Literals & suffixes
    float f = 3.14f;
    decimal price = 10m;
    long big = 123L;
    Console.WriteLine("f=" + f + " price=" + price + " big=" + big);

    // 3) var inference (type is obvious)
    var sum = a.X + a.Y; // int
    Console.WriteLine("sum=" + sum);

    // 4) const vs readonly
    Config cfg = new Config("Demo");
    Console.WriteLine("Pi=" + Pi + " Name=" + cfg.Name);
  }
}

Definition af værditype

Hurtigt tjek: Hvilket udsagn beskriver bedst en værditype?

Opsummering

Opsummering: Værdityper kopierer data, mens referencetyper deler objekter. Brug suffikser til numeriske literaler, var, når typen er tydelig, og vælg passende mellem const og readonly.

Gratis at komme i gang

Lær C# med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
93
Lektioner
346

Ofte stillede spørgsmål

Er lektionen “Value kontra reference; literals; var-inferens; const/readonly” gratis?

Ja — hele teksten til “Value kontra reference; literals; var-inferens; const/readonly” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af C# Academy-kurset, skal du opgradere til CoddyKit PRO. C# Academy-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Value kontra reference; literals; var-inferens; const/readonly”?

Lær, hvordan value types adskiller sig fra reference types, hvordan literals og numeriske suffikser fungerer, hvornår De bør bruge var, og hvilken rolle const og readonly spiller. Du øver dig i C# Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på C# Academy?

Der kræves ingen tidligere erfaring. C# Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 3.

Hvor lang tid tager lektionen “Value kontra reference; literals; var-inferens; const/readonly”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne C# Academy-lektion?

Ja. Alle C# Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Value kontra reference; literals; var-inferens; const/readonly
  2. Operatorer og udtryk: aritmetik, sammenligning, logik
  3. Suffikser i praksis; casting kontra konvertering; C# 6-oprettelse af objekter
← Tilbage til C# Academy