erweiterung

This commit is contained in:
2023-03-23 15:55:13 +01:00
parent 33e49f846c
commit 09c8eab938
39 changed files with 1167 additions and 1 deletions

View File

@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeispielGenerischeTypen
{
public interface IKarte
{
string Farbe { get; }
string Wert { get; }
}
}

View File

@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeispielGenerischeTypen
{
public class Karte : IKarte
{
public string Farbe { get; }
public string Wert { get; }
public Karte(string farbe, string wert)
{
Farbe = farbe;
Wert = wert;
}
}
}

View File

@@ -0,0 +1,17 @@
namespace BeispielGenerischeTypen
{
internal class Program
{
static void Main(string[] args)
{
Stapel<Karte> stapel = new Stapel<Karte>();
Karte karte1 = new Karte("Herz", "König");
Karte karte2 = new Karte("Pik", "Ass");
stapel.Push(karte1);
stapel.Push(karte2);
Console.WriteLine(stapel.Pop().Wert);
Console.WriteLine(stapel.Pop().Wert);
Console.WriteLine(stapel.IsEmpty());
}
}
}

View File

@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeispielGenerischeTypen
{
public class Stapel<T> where T : IKarte
{
private List<T> karten;
public Stapel()
{
karten = new List<T>();
}
public void Push(T karte)
{
karten.Add(karte);
}
public T Pop()
{
if (karten.Count == 0)
{
throw new InvalidOperationException("Der Stapel ist leer.");
}
int lastIndex = karten.Count - 1;
T karte = karten[lastIndex];
karten.RemoveAt(lastIndex);
return karte;
}
public bool IsEmpty()
{
return karten.Count == 0;
}
}
}