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.
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
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.
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
- Value kontra reference; literals; var-inferens; const/readonly
- Operatorer og udtryk: aritmetik, sammenligning, logik
- Suffikser i praksis; casting kontra konvertering; C# 6-oprettelse af objekter