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.
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
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.
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
- Värde kontra referens, literaler, var-inferens, const/readonly
- Operatorer och uttryck: aritmetik, jämförelse och logik
- Suffix i praktiken, typkonvertering kontra omvandling, C# 6-objektskapande