FAGPORTALEN

Records og moderne C#

Computerspace · FGU · Programmering i C#

✨ Hvad er records og moderne C# features?

Moderne C# (version 9-12) introducerer kraftfulde features der gør koden kortere, sikrere og mere udtryksfuld.

Records (C# 9+) – immutable dataklasser:

```csharp

// Record – kort definition med value equality

public record Person(string Navn, int Alder);

var anna = new Person("Anna", 19);

var anna2 = new Person("Anna", 19);

Console.WriteLine(anna == anna2); // true! (value equality)

Console.WriteLine(anna); // Person { Navn = Anna, Alder = 19 }

// Non-destructive mutation

var ældre = anna with { Alder = 20 };

```

Pattern matching (C# 7-11):

```csharp

object obj = 42;

// Type pattern

if (obj is int tal) Console.WriteLine($"Tal: {tal}");

// Switch expression med patterns

string beskriv(object o) => o switch {

int n when n > 0 => "Positivt tal",

int n when n < 0 => "Negativt tal",

int => "Nul",

string s => $"Tekst: {s}",

null => "Null",

_ => "Ukendt"

};

```

Init-only properties og Required members:

```csharp

public class Konfiguration {

// init: kan sættes i object initializer, men ikke senere

public string ServerUrl { get; init; } = "localhost";

// required: SKAL angives ved oprettelse

public required string ApiNøgle { get; init; }

}

var config = new Konfiguration {

ApiNøgle = "min-nøgle" // Påkrævet!

};

```

Primære konstruktører (C# 12) og top-level statements:

```csharp

// Primær konstruktør – parametre direkte på klassen

public class Service(string url, int timeout) {

public async Task<string> Hent() { / bruger url og timeout / }

}

// Top-level statements – ingen klasse/Main nødvendig

Console.WriteLine("Hej verden!"); // Det er et helt C# program!

```

---

🎓 Læringsmål for Records og moderne C#

Læringsmål

Sådan kan du arbejde med emnet

⚠️ Typiske fejl at undgå

---

💡 Tips til at komme i gang

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.