FAGPORTALEN

Interfaces og generics

Computerspace · FGU · Programmering i C#

🔌 Hvad er interfaces og generics i C#?

Interfaces definerer kontrakter. Generics lader dig skrive type-sikker kode der virker med enhver datatype.

Interface-definition og implementering:

```csharp

// Interface – definerer HVAD, ikke HVORDAN

public interface ILærbar {

string Navn { get; }

void Lær();

bool ErFærdig { get; }

}

// Klasse implementerer interface

public class OnlineKursus : ILærbar {

public string Navn { get; }

private int fremskridt = 0;

public OnlineKursus(string navn) => Navn = navn;

public void Lær() => fremskridt += 10;

public bool ErFærdig => fremskridt >= 100;

}

// En klasse kan implementere FLERE interfaces

public class Elev : ILærbar, IComparable<Elev> {

public string Navn { get; }

public void Lær() { / ... / }

public bool ErFærdig => false;

public int CompareTo(Elev? other) => Navn.CompareTo(other?.Navn);

}

```

Generics – type-sikre container og metoder:

```csharp

// Generisk metode

T Maksimum<T>(T a, T b) where T : IComparable<T> {

return a.CompareTo(b) > 0 ? a : b;

}

int maxInt = Maksimum(3, 7); // 7

string maxStr = Maksimum("Anna", "Bo"); // "Bo"

// Generisk klasse

public class Lager<T> {

private List<T> varer = new();

public void Tilføj(T vare) => varer.Add(vare);

public T Hent(int index) => varer[index];

}

```

LINQ – Language Integrated Query:

```csharp

var elever = new List<Elev> { / ... / };

// LINQ metode-syntax

var myndigeElever = elever

.Where(e => e.Alder >= 18)

.OrderBy(e => e.Navn)

.Select(e => e.Navn)

.ToList();

// LINQ query-syntax

var navne = from e in elever

where e.Alder >= 18

orderby e.Navn

select e.Navn;

```

---

🎓 Læringsmål for Interfaces og generics

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.