C# Academy · Lektion

Värde kontra referens, literaler, var-inferens, const/readonly

Lär er hur värdetyper skiljer sig från referenstyper, hur literaler och numeriska suffix fungerar, när var bör användas samt rollerna för const och readonly.

Lektion 1 av 38 steg

Värde kontra referens, literaler, var-inferens, const/readonly är en gratis lektion i C# Academy på CoddyKit. Detta är lektion 1 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C# Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C# Academy innehåller totalt 3 lektioner.

Varför typer är viktiga

Mål: Förstå skillnaden mellan värde- och referenstyper och hur variabler, literaler och konstanter fungerar i vardaglig kod.

Värdetyper kontra referenstyper

Värdetyp: kopierar data vid tilldelning, till exempel int, bool och struct. Referenstyp: kopierar en referens, till exempel class, array och string.

  • Värde: säkrare lokala ändringar
  • Referens: delad objektidentitet

Literaler och suffix

Literaler har typer. Använd suffix för tydlighet: f (float), m (decimal), L (long).

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

Typinferens med var

var låter kompilatorn härleda typen från högerledet. Använd det när typen är uppenbar; ange annars typen explicit.

const kontra readonly

const: konstant vid kompilering; readonly: sätts i konstruktorn eller vid deklarationen.

  • Använd const för fasta värden, till exempel Pi
  • Använd readonly för värden som blir kända under körning

Typer i praktiken

Se hur värde- och referenstyper fungerar, numeriska suffix, enkel var-inferens och const/readonly i ett litet 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 av värdetyp

Snabbkontroll: Vilket påstående beskriver bäst en värdetyp?

Sammanfattning

Sammanfattning: Värdetyper kopierar data; referenstyper delar objekt. Använd suffix för numeriska literaler, var när typen är tydlig och välj const respektive readonly på rätt sätt.

Gratis att börja

Lär dig C# med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
93
Lektioner
346

Vanliga frågor

Är lektionen ”Värde kontra referens, literaler, var-inferens, const/readonly” gratis?

Ja – hela texten till ”Värde kontra referens, literaler, var-inferens, const/readonly” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C# Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C# Academy innehåller totalt 3 lektioner.

Vad lär jag mig i ”Värde kontra referens, literaler, var-inferens, const/readonly”?

Lär er hur värdetyper skiljer sig från referenstyper, hur literaler och numeriska suffix fungerar, när var bör användas samt rollerna för const och readonly. Ni övar på C# Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig C# Academy?

Du behöver inga förkunskaper. Utbildningen i C# Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 3.

Hur lång tid tar lektionen ”Värde kontra referens, literaler, var-inferens, const/readonly”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här C# Academy-lektionen?

Ja. Varje C# Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Värde kontra referens, literaler, var-inferens, const/readonly
  2. Operatorer och uttryck: aritmetik, jämförelse och logik
  3. Suffix i praktiken, typkonvertering kontra omvandling, C# 6-objektskapande
← Tillbaka till C# Academy