FAGPORTALEN

Klasser og OOP i C#

Computerspace · FGU · Programmering i C#

🏗️ Hvad er klasser og OOP i C#?

C# er designet fra bunden til objektorienteret programmering. Alt i C# er et objekt – selv primitive typer som int er en System.Int32.

Klassedefinition med properties:

```csharp

public class Elev {

// Auto-implemented properties

public string Navn { get; set; }

public int Alder { get; private set; } // Kun intern ændring

// Read-only computed property

public bool ErMyndig => Alder >= 18;

// Konstruktør

public Elev(string navn, int alder) {

Navn = navn;

Alder = alder;

}

// Metode

public void Præsentér() {

Console.WriteLine($"Jeg hedder {Navn} og er {Alder} år.");

}

// Override ToString fra object

public override string ToString() => $"Elev: {Navn}";

}

// Brug

var elev = new Elev("Anna", 19);

elev.Præsentér();

Console.WriteLine(elev); // Bruger ToString()

```

Nedarvning:

```csharp

public class Person {

public string Navn { get; set; }

public virtual void Præsentér() => Console.WriteLine($"Person: {Navn}");

}

public class Lærer : Person {

public string Fag { get; set; }

public override void Præsentér() =>

Console.WriteLine($"Lærer {Navn} underviser i {Fag}");

}

// Sealed klasse – kan ikke nedarves

public sealed class AdminBruger : Person { }

```

Adgangsmodifikatorer:

```csharp

public // Tilgængelig overalt

private // Kun i klassen

protected // Klassen og afledte klasser

internal // Kun i samme assembly (.dll)

```

---

🎓 Læringsmål for Klasser og OOP i 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.