diff --git a/Tag 2/.Vererbung.cs.kate-swp b/Tag 2/.Vererbung.cs.kate-swp
deleted file mode 100644
index f7a9221..0000000
Binary files a/Tag 2/.Vererbung.cs.kate-swp and /dev/null differ
diff --git a/Tag 2/Aufgaben/Aufgabe_1.txt b/Tag 2/Aufgaben/Aufgabe_1.txt
new file mode 100644
index 0000000..5966f8d
--- /dev/null
+++ b/Tag 2/Aufgaben/Aufgabe_1.txt
@@ -0,0 +1,10 @@
+/*
+ * Erstellen Sie die Klasse "Song" mit den Attributen
+ * string "titel", string "interpret", int "dauerSekunden"
+ * passenden Getter und Setter für die Attribute
+ * und der Methode "Spielen", die auf der Konsole alle Informationen über den Song ausgibt (die Dauer dabei in Minuten und Sekunden, z.B. 03:35).
+ *
+ * Über einen Konstruktor sollen die Attribute initialisiert werden.
+ *
+ * Erstellen Sie in der Main einen Song und rufen Sie die Methode auf.
+ */
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Aufgabe_2.txt b/Tag 2/Aufgaben/Aufgabe_2.txt
new file mode 100644
index 0000000..2e4ccb5
--- /dev/null
+++ b/Tag 2/Aufgaben/Aufgabe_2.txt
@@ -0,0 +1,14 @@
+/*
+ * Sie bauen einen Roboter. Erstellen Sie die Klasse Robot mit folgenden öffentlichen Membern:
+ * - Integer "batterieLaufzeit"
+ * - String "aufgabe"
+ * - Methode "IstBatterieLaufzeitNiedrig"
+ * gibt true zurück, wenn die Laufzeit kleiner 2 ist, sonst false.
+ * - Methode "FühreAufgabeAus"
+ * gibt auf dem Bildschirm den Text des Attributs "aufgabe" aus, wenn "IstBatterieLaufzeitNiedrig" false liefert
+ * und reduziert dann die Batterielaufzeit um 1,
+ * sonst soll "Ich muss aufgeladen werden." in der Konsole erscheinen.
+ *
+ * Erstellen Sie in der Main einen Roboter mit der Aufgabe "Ich reiche Butter." und einer Batterielaufzeit von 5.
+ * Lassen Sie ihn fünfmal in einer Schleife Butter reichen.
+ */
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Aufgabe_3.txt b/Tag 2/Aufgaben/Aufgabe_3.txt
new file mode 100644
index 0000000..8cb6b7c
--- /dev/null
+++ b/Tag 2/Aufgaben/Aufgabe_3.txt
@@ -0,0 +1,15 @@
+/* Komplexe Aufgabenstellung:
+ * Sie sollen eine Anwendung für einen Shop schreiben. Im Shop gibt es viele Artikel, die mit Id, Bezeichnung, Einkaufspreis, Gewinnsatz und Verkaufspreis gespeichert werden. Der Verkaufspreis wird dabei immer aus Einkaufspreis + Gewinn errechnet.
+ *
+ * Artikel, die gekauft werden, werden mit Mengenangabe in einen Warenkorb gelegt. Es sollen Artikel in den Warenkorb gelegt und wieder entfernt werden können. Ebenfalls soll es möglich sein, die Anzahl eines Artikels ändern zu können. Über den Warenkorb wird der Gesamtpreis aller sich dort befindenden Artikel ermittelt.
+ *
+ * Artikel im Warenkorb werden dort als Warenkorb-Items eingetragen. Ein Warenkorb-Item besteht aus dem Artikel selbst und der Anzahl. Ebenfalls soll der Gesamtpreis für diesen Artikel abgefragt werden können.
+ *
+
+
+ * Es ist nicht erforderlich, ein Eingabe-Menü zu basteln. Es reicht, die einzelnen Fälle über Code in der Main zu testen.
+ * Wichtig für diese Übung: Beachten Sie die Prinzipien der OOP. Insbesondere die Klassenbildung und Datenkapselung / Geheimnisprinzip.
+ * Ebenso sollen Sie die strikte Trennung von Funktionalität / Datenhaltung und Darstellung beachten. Heißt: Dort, wo die Daten gespeichert sind und Funktionalitäten liegen, wird KEINE Konsolenausgabe getätigt. Konsolenausgaben nur in dafür vorgesehenen eigenen Klassen oder zum Beispiel in der Main.
+ * Diese Aufgabe lässt sich mit dem lösen, was wir bisher kennengelernt haben.
+ * Erstellen Sie auch ein UML Klassendiagramm und gerne auch Anwendungsfall-, Sequenz- oder Aktivitätsdiagramm.
+ */
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Aufgaben.csproj b/Tag 2/Aufgaben/Aufgaben.csproj
new file mode 100644
index 0000000..ed9781c
--- /dev/null
+++ b/Tag 2/Aufgaben/Aufgaben.csproj
@@ -0,0 +1,10 @@
+
+
+
+ Exe
+ net10.0
+ enable
+ enable
+
+
+
diff --git a/Tag 2/Aufgaben/Lösung_1/Lösung_1.txt b/Tag 2/Aufgaben/Lösung_1/Lösung_1.txt
new file mode 100644
index 0000000..1a72ca8
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_1/Lösung_1.txt
@@ -0,0 +1,13 @@
+using System;
+
+namespace Lösungen
+{
+ class Program
+ {
+ public static void Main(string[] args)
+ {
+ Song s = new Song("Rip & Tear", "Mick Gordon", 258);
+ s.Spielen();
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Lösung_1/Song.txt b/Tag 2/Aufgaben/Lösung_1/Song.txt
new file mode 100644
index 0000000..9f39b85
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_1/Song.txt
@@ -0,0 +1,35 @@
+/*
+ * Erstellen Sie die Klasse "Song" mit den Attributen
+ * string "titel", string "interpret", int "dauerSekunden"
+ * passenden Getter und Setter für die Attribute
+ * und der Methode "spielen", die auf der Konsole alle Informationen über den Song ausgibt (die Dauer dabei in Minuten und Sekunden, z.B. 03:35).
+ *
+ * Über einen Konstruktor sollen die Attribute initialisiert werden.
+ *
+ * Erstellen Sie in der Main einen Song und rufen Sie die Methode auf.
+ */
+
+using System;
+
+namespace Lösungen
+{
+ internal class Song
+ {
+ public string Titel { get; }
+ public string Interpret { get; }
+ public int DauerSekunden { get; }
+
+
+ public Song(string titel, string interpret, int dauerSekunden)
+ {
+ Titel = titel;
+ DauerSekunden = dauerSekunden;
+ Interpret = interpret;
+ }
+
+ public void Spielen()
+ {
+ Console.WriteLine($"{Titel} - {Interpret} - {DauerSekunden/60:D2}:{DauerSekunden%60:D2}");
+ }
+ }
+}
diff --git a/Tag 2/Aufgaben/Lösung_2/Lösung_2.txt b/Tag 2/Aufgaben/Lösung_2/Lösung_2.txt
new file mode 100644
index 0000000..9dca3f3
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_2/Lösung_2.txt
@@ -0,0 +1,32 @@
+/*
+ * Sie bauen einen Roboter. Erstellen Sie die Klasse Robot mit folgenden öffentlichen Membern:
+ * - Integer "batterieLaufzeit"
+ * - String "aufgabe"
+ * - Methode "IstBatterieLaufzeitNiedrig"
+ * gibt true zurück, wenn die Laufzeit kleiner 2 ist, sonst false.
+ * - Methode "FühreAufgabeAus"
+ * gibt auf dem Bildschirm den Text des Attributs "aufgabe" aus, wenn "IstBatterieLaufzeitNiedrig" false liefert
+ * und reduziert dann die Batterielaufzeit um 1,
+ * sonst soll "Ich muss aufgeladen werden." in der Konsole erscheinen.
+ *
+ * Erstellen Sie in der Main einen Roboter mit der Aufgabe "Ich reiche Butter." und einer Batterielaufzeit von 5.
+ * Lassen Sie ihn fünfmal in einer Schleife Butter reichen.
+ */
+
+using System;
+
+namespace Lösungen
+{
+ class Lösung_2
+ {
+
+ public static void Main(String[] args)
+ {
+ Robot r = new Robot(5, "Ich reiche Butter.");
+
+ for (int i = 0; i < 5; i++)
+ r.FühreAufgabeAus();
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Lösung_2/Robot.txt b/Tag 2/Aufgaben/Lösung_2/Robot.txt
new file mode 100644
index 0000000..21e8738
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_2/Robot.txt
@@ -0,0 +1,32 @@
+using System;
+
+namespace Lösungen
+{
+ class Robot
+ {
+ private int batterieLaufzeit;
+ private string aufgabe;
+
+ public Robot(int batterieLaufzeit, string aufgabe)
+ {
+ this.batterieLaufzeit = batterieLaufzeit;
+ this.aufgabe = aufgabe;
+ }
+
+ public bool IstBatterieLaufzeitNiedrig()
+ {
+ return batterieLaufzeit < 2;
+ }
+
+ public void FühreAufgabeAus()
+ {
+ if (!IstBatterieLaufzeitNiedrig())
+ {
+ Console.WriteLine(aufgabe);
+ batterieLaufzeit--;
+ }
+ else
+ Console.WriteLine("Ich muss aufgeladen werden.");
+ }
+ }
+}
diff --git a/Tag 2/Aufgaben/Lösung_3/Artikel.txt b/Tag 2/Aufgaben/Lösung_3/Artikel.txt
new file mode 100644
index 0000000..82c0bb8
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3/Artikel.txt
@@ -0,0 +1,108 @@
+using System;
+using System.Collections.Generic;
+
+class Artikel
+{
+ ///
+ /// In dieser Liste werden alle Artikel abgespeichert.
+ ///
+ public static readonly List artikelListe = new List();
+
+ private int id; // privates Feld
+
+ ///
+ /// Die ID des Artikels.
+ ///
+ public int Id // Dazugehöriger, öffentlicher Getter
+ {
+ get => id;
+ }
+
+ private string bezeichnung;
+
+ ///
+ /// Die Bezeichnung des Artikels.
+ ///
+ public string Bezeichnung
+ {
+ get => bezeichnung;
+ }
+
+ private double einkaufspreis;
+
+ ///
+ /// Der Einkaufspreis des Artikels, muss größer 0 sein.
+ ///
+ public double Einkaufspreis
+ {
+ get => einkaufspreis; // Getter
+ set // Setter
+ {
+ if (value > 0) // If-Bedingung im Setter, prüft, ob der übergebene Wert größer 0 ist und weist nur dann einkaufspreis den Wert zu.
+ einkaufspreis = value;
+ }
+ }
+
+
+ private int gewinnsatz;
+
+ ///
+ /// Der Gewinnsatz des Artikels.
+ ///
+ public int Gewinnsatz
+ {
+ get => gewinnsatz; // Getter
+ set => gewinnsatz = value; // Setter
+ }
+
+
+ ///
+ /// Gibt den Verkaufspreis des Artikels zurück. Berechnet aus Einkaufspreis + Gewinnsatz.
+ ///
+ public double Verkaufspreis
+ {
+ get => Math.Round(einkaufspreis + (einkaufspreis / 100.0 * gewinnsatz), 2);
+ }
+
+ ///
+ /// Sucht in der ArtikelListe nach dem Artikel mit der übergebenen ID und gibt diesen zurück.
+ ///
+ /// artikelId Die ID des gesuchten Artikels.
+ /// Den gesuchten Artikel oder null.
+ public static Artikel? getArtikel(int artikelId)
+ {
+ foreach (Artikel artikel in artikelListe)
+ {
+ if (artikel.id == artikelId)
+ return artikel;
+ }
+ return null;
+ }
+
+ ///
+ /// Gibt einen String mit Informationen über den Artikel zurück.
+ ///
+ /// Einen string aus Id, Bezeichnung und Verkaufspreis.
+ public String GetArtikelString()
+ {
+ return String.Format($"ID : {id} - Bezeichnung: {bezeichnung} - Einzelpreis: {Verkaufspreis:C2}");
+ }
+
+ ///
+ /// Instanziiert einen Artikel und fügt ihn der ArtikelListe hinzu.
+ ///
+ /// ID des Artikels
+ /// Bezeichnung des Artikels
+ /// Einkaufspreis des Artikels - muss größer 0 sein
+ /// Gewinnsatz des Artikels
+ public Artikel(int id, String bezeichnung, double einkaufspreis, int gewinnsatz)
+ {
+ this.id = id; // Zuweisung über privates Feld
+ this.bezeichnung = bezeichnung;
+ Einkaufspreis = einkaufspreis; // Zuweisung über den Setter, da sich dort eine Überprüfung des Wertes auf größer 0 befindet
+ Gewinnsatz = gewinnsatz;
+
+ artikelListe.Add(this); // Fügt die aktuelle Instanz / das aktuelle Objekt der Liste hinzu.
+ }
+}
+
diff --git a/Tag 2/Aufgaben/Lösung_3/Class.dia b/Tag 2/Aufgaben/Lösung_3/Class.dia
new file mode 100644
index 0000000..3e71386
Binary files /dev/null and b/Tag 2/Aufgaben/Lösung_3/Class.dia differ
diff --git a/Tag 2/Aufgaben/Lösung_3/Lösung_3.txt b/Tag 2/Aufgaben/Lösung_3/Lösung_3.txt
new file mode 100644
index 0000000..e501ef0
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3/Lösung_3.txt
@@ -0,0 +1,114 @@
+/* Komplexe Aufgabenstellung:
+ * Sie sollen eine Anwendung für einen Shop schreiben. Im Shop gibt es viele Artikel, die mit Id, Bezeichnung, Einkaufspreis, Gewinnsatz und Verkaufspreis gespeichert werden. Der Verkaufspreis wird dabei immer aus Einkaufspreis + Gewinn errechnet.
+ *
+ * Artikel, die gekauft werden, werden mit Mengenangabe in einen Warenkorb gelegt. Es sollen Artikel in den Warenkorb gelegt und wieder entfernt werden können. Ebenfalls soll es möglich sein, die Anzahl eines Artikels ändern zu können. Über den Warenkorb wird der Gesamtpreis aller sich dort befindenden Artikel ermittelt.
+ *
+ * Artikel im Warenkorb werden dort als Warenkorb-Items eingetragen. Ein Warenkorb-Item besteht aus dem Artikel selbst und der Anzahl. Ebenfalls soll der Gesamtpreis für diesen Artikel abgefragt werden können.
+ *
+ * Es ist nicht erforderlich, ein Eingabe-Menü zu basteln. Es reicht, die einzelnen Fälle über Code in der Main zu testen.
+ * Wichtig für diese Übung: Beachten Sie die Prinzipien der OOP. Insbesondere die Klassenbildung und Datenkapselung / Geheimnisprinzip.
+ * Ebenso sollen Sie die strikte Trennung von Funktionalität / Datenhaltung und Darstellung beachten. Heißt: Dort, wo die Daten gespeichert sind und Funktionalitäten liegen, wird KEINE Konsolenausgabe getätigt. Konsolenausgaben nur in dafür vorgesehenen eigenen Klassen oder zum Beispiel in der Main.
+ * Diese Aufgabe lässt sich mit dem lösen, was wir bisher kennengelernt haben.
+ * Erstellen Sie auch ein UML Klassendiagramm und gerne auch Anwendungsfall-, Sequenz- oder Aktivitätsdiagramm.
+ */
+
+using System;
+using System.Text;
+
+namespace Lösungen
+{
+ class Lösung_3
+ {
+
+ public static void Main(String[] args)
+ {
+ Console.OutputEncoding = Encoding.UTF8;
+
+ // Drei Artikel erstellen
+ new Artikel(1, "Artikel 1", 99.99, 20);
+ new Artikel(2, "Artikel 2", 49.99, 25);
+ new Artikel(3, "Artikel 3", 9.99, 15);
+
+ foreach (Artikel artikel in Artikel.artikelListe)
+ {
+ Console.WriteLine(artikel.GetArtikelString());
+ }
+
+ Console.WriteLine();
+
+ // Neuen Warenkorb erstellen
+ Warenkorb warenkorb = new Warenkorb();
+
+ // Artikel zum Warenkorb hinzufügen
+ Hinzufügen(warenkorb, 1, 2); // Zum Hinzufügen und Entfernen habe ich hier noch zwei extra Methoden geschrieben, um in der Main doppelten Code zu vermeiden (also das If-Else mit den Ausgaben ausgelagert)
+
+ // Warenkorb ausgeben
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ Hinzufügen(warenkorb, 3, 20);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ // Artikel entfernen (Anzahl verringern)
+ Entfernen(warenkorb, 3, 10);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ // Artikel hinzufügen (Anzahl erhöhen)
+ Hinzufügen(warenkorb, 3, 5);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ // Artikel komplett entfernen
+ Entfernen(warenkorb, 3, 20);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ // Entfernten Artikel erneut hinzufügen
+ Hinzufügen(warenkorb, 3, 1);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ // Artikel entfernen, der nicht im Warenkorb ist
+ Entfernen(warenkorb, 2, 10);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ // Artikel hinzufügen, der nicht existiert
+ Hinzufügen(warenkorb, 4, 1);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ // Alle Artikel entfernen
+ Entfernen(warenkorb, 1, 2);
+ Entfernen(warenkorb, 3, 1);
+
+ Console.WriteLine(warenkorb.GetWarenkorbString());
+
+ }
+
+ /**
+ * Methode zum Hinzufügen von Artikeln. Konsolenausgabe entsprechend dem Ergebnis.
+ */
+ static void Hinzufügen(Warenkorb warenkorb, int artikelId, int anzahl)
+ {
+ if (warenkorb.ArtikelHinzufügen(artikelId, anzahl))
+ Console.WriteLine("Hinzufügen erfolgreich!");
+ else
+ Console.WriteLine("Hinzufügen fehlgeschlagen!");
+ }
+
+
+ /**
+ * Methode zum Entfernen von Artikeln. Konsolenausgabe entsprechend dem Ergebnis.
+ */
+ static void Entfernen(Warenkorb warenkorb, int artikelId, int anzahl)
+ {
+ if (warenkorb.ArtikelEntfernen(artikelId, anzahl))
+ Console.WriteLine("Entfernen erfolgreich!");
+ else
+ Console.WriteLine("Entfernen fehlgeschlagen!");
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Lösung_3/UseCase.dia b/Tag 2/Aufgaben/Lösung_3/UseCase.dia
new file mode 100644
index 0000000..a5aede3
Binary files /dev/null and b/Tag 2/Aufgaben/Lösung_3/UseCase.dia differ
diff --git a/Tag 2/Aufgaben/Lösung_3/Warenkorb.txt b/Tag 2/Aufgaben/Lösung_3/Warenkorb.txt
new file mode 100644
index 0000000..d1be940
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3/Warenkorb.txt
@@ -0,0 +1,141 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+class Warenkorb
+{
+ /**
+ * Eine Liste aller Artikel im Warenkorb.
+ */
+ private List itemListe = new List();
+
+ /**
+ * Gibt den Gesamtpreis aller Artikel im Warenkorb zurück.
+ */
+ public double Gesamtpreis // Als Property (Eigenschaft)
+ {
+ get
+ {
+ double summe = 0;
+ foreach (WarenkorbItem item in itemListe)
+ {
+ summe += item.ItemPreis;
+ }
+
+ return summe;
+ }
+ }
+
+ /**
+ * Fügt einen über die Artikel-ID identifizierten Artikel mit einer gewünschten Anzahl dem Warenkorb hinzu. Befindet sich der Artikel bereits im Warenkorb, wird die Anzahl erhöht.
+ *
Gibt true zurück, wenn erfolgreich, sonst false.
+ * @param artikelId Die ID des Artikels.
+ * @param anzahl Die gewünschte Anzahl.
+ * @return True wenn erfolgreich, sonst False.
+ */
+ public bool ArtikelHinzufügen(int artikelId, int anzahl)
+ {
+ // Sucht in der ArtikelListe der Klasse Artikel nach dem Objekt mit der passenden artikelID und gibt den Artikel zurück, wenn er gefunden wurde, sonst null.
+ Artikel? artikel = Artikel.getArtikel(artikelId);
+ // Und wenn der Artikel gefunden wurde...
+ return ArtikelHinzufügen(artikel, anzahl); // Aufruf der zweiten 'ArtikelHinzufügen' Methode
+ }
+
+ /**
+ * Fügt einen Artikel mit einer gewünschten Anzahl dem Warenkorb hinzu. Befindet sich der Artikel bereits im Warenkorb, wird die Anzahl erhöht.
+ *
Gibt true zurück, wenn erfolgreich, sonst false.
+ * @param artikel Der Artikel.
+ * @param anzahl Die gewünschte Anzahl.
+ * @return True wenn erfolgreich, sonst False.
+ */
+ public bool ArtikelHinzufügen(Artikel? artikel, int anzahl)
+ {
+ if (artikel != null)
+ {
+ // dann prüfen wir, ob der gesuchte Artikel bereits im Warenkorb ist, indem wir uns jedes Item im Warenkorb anschauen...
+ foreach (WarenkorbItem item in itemListe)
+ {
+ // und wenn ein Item im Warenkorb dem gefundenen Artikel entspricht...
+ if (item.Item == artikel)
+ {
+ // dann erhöhen wir einfach die Anzahl
+ item.Anzahl = item.Anzahl + anzahl;
+ return true;
+ }
+ }
+ // Sonst fügen wir den Artikel neu dem Warenkorb hinzu
+ itemListe.Add(new WarenkorbItem(artikel, anzahl));
+ return true;
+ }
+ // Wenn wir keinen Artikel mit der artikelId gefunden haben, geben wir false zurück
+ return false;
+ }
+
+ /**
+ * Entfernt einen Artikel aus dem Warenkorb.
+ */
+ public bool ArtikelEntfernen(int artikelId, int anzahl)
+ {
+ // Sucht in der ArtikelListe der Klasse Artikel nach dem Objekt mit der passenden artikelID und gibt den Artikel zurück, wenn er gefunden wurde, sonst null.
+ Artikel? artikel = Artikel.getArtikel(artikelId);
+ // Und wenn der Artikel gefunden wurde...
+ return ArtikelEntfernen(artikel, anzahl);
+ }
+
+ /**
+ * Entfernt einen Artikel aus dem Warenkorb.
+ */
+ public bool ArtikelEntfernen(Artikel? artikel, int anzahl)
+ {
+ if (artikel != null)
+ {
+ foreach (WarenkorbItem item in itemListe)
+ {
+ // und wenn ein Item im Warenkorb dem Artikel entspricht...
+ if (item.Item == artikel)
+ {
+ // wenn die verbleibende Anzahl kleiner gleich 0 ist
+ if (item.Anzahl - anzahl <= 0)
+ {
+ // dann entfernen wir den Artikel komplett aus dem Warenkorb
+ itemListe.Remove(item);
+ }
+ // Sonst verringern wir die Anzahl im Warenkorb um die gewünschte Anzahl
+ else
+ {
+ item.Anzahl = item.Anzahl - anzahl;
+ }
+
+ return true;
+ }
+ }
+
+ // Wenn sich der Artikel nicht im Warenkorb befindet...
+ return false;
+ }
+
+ // Wenn der Artikel nicht gefunden wurde...
+ return false;
+ }
+
+
+ /**
+ * Gibt einen String mit Informationen zu allen Artikeln im Warenkorb zurück, inklusive der Summe.
+ */
+ public string GetWarenkorbString()
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.Append("Aktueller Warenkorb: \n");
+
+ // Ruft für jedes Item im Warenkorb die GetWarenkorbItemString-Methode auf...
+ foreach (WarenkorbItem item in itemListe)
+ {
+ // und fügt den Rückgabewert dem String hinzu
+ sb.Append(item.GetWarenkorbItemString()).Append("\n");
+ }
+ sb.Append(String.Format($"Summe: {Gesamtpreis:C2}"));
+ return sb.ToString();
+ }
+
+}
+
diff --git a/Tag 2/Aufgaben/Lösung_3/WarenkorbItem.txt b/Tag 2/Aufgaben/Lösung_3/WarenkorbItem.txt
new file mode 100644
index 0000000..b6e51cb
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3/WarenkorbItem.txt
@@ -0,0 +1,58 @@
+using System;
+
+class WarenkorbItem
+{
+ private Artikel item;
+
+ /**
+ * Der sich im Warenkorb befindende Artikel.
+ */
+ public Artikel Item
+ {
+ get => item;
+ }
+
+ private int anzahl;
+
+ /**
+ * Die Anzahl, wie oft der Artikel im Warenkorb liegt. Anzahl muss größer 0 sein.
+ */
+ public int Anzahl
+ {
+ get => anzahl;
+ set
+ {
+ if (value > 0)
+ anzahl = value;
+ }
+ }
+
+
+ /**
+ * Gibt den Gesamtpreis des Artikels zurück. Berechnet durch Verkaufspreis * Anzahl.
+ */
+ public double ItemPreis
+ {
+ get => item.Verkaufspreis * anzahl;
+ }
+
+ /**
+ * Gibt einen String mit Informationen über den Artikel im Warenkorb zurück.
+ * @return Einen String aus Id, Bezeichnung, Verkaufspreis, Anzahl und Gesamtpreis.
+ */
+ public string GetWarenkorbItemString()
+ {
+ return String.Format(item.GetArtikelString() + $" - Anzahl: {anzahl} - Gesamtpreis: {ItemPreis:C2}");
+ }
+
+ /**
+ * Instanziiert ein neues Warenkorb-Item.
+ * @param item Der Artikel im Warenkorb.
+ * @param anzahl Die Anzahl, wie oft sich der Artikel im Warenkorb befindet.
+ */
+ public WarenkorbItem(Artikel item, int anzahl)
+ {
+ this.item = item;
+ Anzahl = anzahl;
+ }
+}
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Lösung_3v2/Artikel.txt b/Tag 2/Aufgaben/Lösung_3v2/Artikel.txt
new file mode 100644
index 0000000..06885cb
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3v2/Artikel.txt
@@ -0,0 +1,31 @@
+
+namespace Lösungen
+{
+ internal class Artikel
+ {
+ public int Id { get; } // Property mit unsichtbarem Backing-Field
+ public string Bezeichnung { get; set; }
+ public double Einkaufspreis { get; set; }
+ public int Gewinnsatz { get; set; }
+ public double Verkaufspreis // Full-Property, aber ohne Backing-Field, da der Wert jedes Mal über den Getter neu berechnet wird.
+ {
+ get
+ {
+ return Einkaufspreis + (Einkaufspreis * Gewinnsatz / 100);
+ }
+ }
+
+ public Artikel(int id, string bezeichnung, double einkaufspreis, int gewinnsatz)
+ {
+ Id = id;
+ Bezeichnung = bezeichnung;
+ Einkaufspreis = einkaufspreis;
+ Gewinnsatz = gewinnsatz;
+ }
+
+ public override string ToString()
+ {
+ return $"{Id} {Bezeichnung}: {Einkaufspreis:C2} + {Gewinnsatz} % = {Verkaufspreis:C2}";
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/Lösung_3v2/Program.txt b/Tag 2/Aufgaben/Lösung_3v2/Program.txt
new file mode 100644
index 0000000..3867ad2
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3v2/Program.txt
@@ -0,0 +1,42 @@
+/* Komplexe Aufgabenstellung:
+ * Sie sollen eine Anwendung für einen Shop schreiben. Im Shop gibt es viele Artikel, die mit Id, Bezeichnung, Einkaufspreis, Gewinnsatz und Verkaufspreis gespeichert werden. Der Verkaufspreis wird dabei immer aus Einkaufspreis + Gewinn errechnet.
+ *
+ * Artikel, die gekauft werden, werden mit Mengenangabe in einen Warenkorb gelegt. Es sollen Artikel in den Warenkorb gelegt und wieder entfernt werden können. Ebenfalls soll es möglich sein, die Anzahl eines Artikels ändern zu können. Über den Warenkorb wird der Gesamtpreis aller sich dort befindenden Artikel ermittelt.
+ *
+ * Artikel im Warenkorb werden dort als Warenkorb-Items eingetragen. Ein Warenkorb-Item besteht aus dem Artikel selbst und der Anzahl. Ebenfalls soll der Gesamtpreis für diesen Artikel abgefragt werden können.
+ *
+ */
+
+using System;
+using System.Text;
+
+namespace Lösungen
+{
+ internal class Program
+ {
+ public static void Main(String[] args)
+ {
+ Console.OutputEncoding = Encoding.UTF8;
+
+ Artikel a1 = new Artikel(1, "Apfel", 0.30, 10);
+ Artikel a2 = new Artikel(2, "Flatscreen", 75.0, 30);
+ Artikel a3 = new Artikel(3, "Blumentopf", 0.50, 80);
+
+ Warenkorb w = new Warenkorb();
+
+ Console.WriteLine(w.ArtikelHinzufügen(a1));
+ Console.WriteLine(w.ToString());
+ Console.WriteLine(w.ArtikelHinzufügen(a1, 9));
+ Console.WriteLine(w.ToString());
+ Console.WriteLine(w.ArtikelEntfernen(a2, 1));
+ Console.WriteLine(w.ToString());
+ Console.WriteLine(w.ArtikelHinzufügen(a2, 10));
+ Console.WriteLine(w.ToString());
+ Console.WriteLine(w.ArtikelEntfernen(a2, 9));
+ Console.WriteLine(w.ToString());
+ //Console.WriteLine(w.ArtikelHinzufügen(null, 1));
+ //Console.WriteLine(w.ToString());
+
+ }
+ }
+}
diff --git a/Tag 2/Aufgaben/Lösung_3v2/Warenkorb.txt b/Tag 2/Aufgaben/Lösung_3v2/Warenkorb.txt
new file mode 100644
index 0000000..d74ccae
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3v2/Warenkorb.txt
@@ -0,0 +1,95 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Lösungen
+{
+ internal class Warenkorb
+ {
+ private List warenkorbItemListe = new List();
+
+
+ public bool ArtikelHinzufügen(Artikel artikel, ushort anzahl = 1) // durch 'ushort' verhindern wir negative Werte und '= 1' ist ein Default-Wert, womit das Argument beim Aufruf weggelassen werden kann.
+ {
+ if (artikel == null)
+ throw new ArgumentNullException(nameof(artikel));
+
+ try
+ {
+ // Wir suchen nach einem WarenkorbItem, in dem der Artikel der übergebene Artikel ist.
+ WarenkorbItem? item = warenkorbItemListe.Find(x => x.Artikel == artikel);
+
+ if (item == null) // Wenn wir keinen finden...
+ {
+ item = new WarenkorbItem(artikel, anzahl); // erzeugen wir einen neuen.
+ warenkorbItemListe.Add(item);
+ return true;
+ }
+ else // Sonst...
+ {
+ item.Anzahl = (ushort)(item.Anzahl + anzahl); // erhöhen wir die Anzahl.
+ return true;
+ }
+ }
+ catch (Exception)
+ {
+ return false; // Kommt es dabei zu einem Fehler, geben wir false zurück.
+ }
+
+ }
+
+ public bool ArtikelEntfernen(Artikel artikel, ushort anzahl)
+ {
+ if (artikel == null)
+ throw new ArgumentNullException(nameof(artikel));
+
+ try
+ {
+ // Wir suchen nach einem WarenkorbItem, in dem der Artikel der übergebene Artikel ist.
+ WarenkorbItem? item = warenkorbItemListe.Find(x => x.Artikel == artikel);
+
+ if (item != null) // Haben wir ihn gefunden...
+ {
+ item.Anzahl = (ushort)(item.Anzahl - anzahl); // reduzieren wir die Anzahl.
+ if (item.Anzahl <= 0) // Ist die Anzahl 0 oder weniger,
+ warenkorbItemListe.Remove(item); // nehmen wir den Artikel ganz aus dem Warenkorb.
+
+ return true;
+ }
+ else // Haben wir keinen gefunden...
+ {
+ return false; // geben wir false zurück.
+ }
+ }
+ catch (Exception)
+ {
+ return false;
+ }
+ }
+
+ public double GetGesamtpreis()
+ {
+ double summe = 0;
+ foreach (WarenkorbItem item in warenkorbItemListe)
+ {
+ summe += item.Gesamtpreis;
+ }
+ return summe;
+ }
+
+ public override string ToString()
+ {
+ StringBuilder sb = new StringBuilder();
+
+ foreach (WarenkorbItem item in warenkorbItemListe)
+ {
+ sb.AppendLine(item.ToString());
+ }
+
+ sb.AppendLine($"{GetGesamtpreis():C2}");
+
+ return sb.ToString();
+ }
+
+ }
+}
diff --git a/Tag 2/Aufgaben/Lösung_3v2/WarenkorbItem.txt b/Tag 2/Aufgaben/Lösung_3v2/WarenkorbItem.txt
new file mode 100644
index 0000000..ae1f150
--- /dev/null
+++ b/Tag 2/Aufgaben/Lösung_3v2/WarenkorbItem.txt
@@ -0,0 +1,22 @@
+
+namespace Lösungen
+{
+ internal class WarenkorbItem
+ {
+ public Artikel Artikel { get; }
+ public ushort Anzahl { get; set; }
+
+ public double Gesamtpreis => Artikel.Verkaufspreis * Anzahl; // Property als Expression-Bodied-Member
+
+ public WarenkorbItem(Artikel artikel, ushort anzahl)
+ {
+ Artikel = artikel;
+ Anzahl = anzahl;
+ }
+
+ public override string ToString()
+ {
+ return Artikel.ToString() + $" , * {Anzahl} = {Gesamtpreis:C2}";
+ }
+ }
+}
diff --git a/Tag 2/Aufgaben/Program.cs b/Tag 2/Aufgaben/Program.cs
new file mode 100644
index 0000000..3751555
--- /dev/null
+++ b/Tag 2/Aufgaben/Program.cs
@@ -0,0 +1,2 @@
+// See https://aka.ms/new-console-template for more information
+Console.WriteLine("Hello, World!");
diff --git a/Tag 2/Aufgaben/obj/Aufgaben.csproj.nuget.dgspec.json b/Tag 2/Aufgaben/obj/Aufgaben.csproj.nuget.dgspec.json
new file mode 100644
index 0000000..2b32553
--- /dev/null
+++ b/Tag 2/Aufgaben/obj/Aufgaben.csproj.nuget.dgspec.json
@@ -0,0 +1,342 @@
+{
+ "format": 1,
+ "restore": {
+ "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj": {}
+ },
+ "projects": {
+ "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj",
+ "projectName": "Aufgaben",
+ "projectPath": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj",
+ "packagesPath": "/home/wbs/.nuget/packages/",
+ "outputPath": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/obj/",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "/home/wbs/.nuget/NuGet/NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net10.0"
+ ],
+ "sources": {
+ "/usr/lib64/dotnet/library-packs": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net10.0": {
+ "targetAlias": "net10.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "all"
+ },
+ "SdkAnalysisLevel": "10.0.100"
+ },
+ "frameworks": {
+ "net10.0": {
+ "targetAlias": "net10.0",
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/10.0.110/PortableRuntimeIdentifierGraph.json",
+ "packagesToPrune": {
+ "Microsoft.CSharp": "(,4.7.32767]",
+ "Microsoft.VisualBasic": "(,10.4.32767]",
+ "Microsoft.Win32.Primitives": "(,4.3.32767]",
+ "Microsoft.Win32.Registry": "(,5.0.32767]",
+ "runtime.any.System.Collections": "(,4.3.32767]",
+ "runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
+ "runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
+ "runtime.any.System.Globalization": "(,4.3.32767]",
+ "runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
+ "runtime.any.System.IO": "(,4.3.32767]",
+ "runtime.any.System.Reflection": "(,4.3.32767]",
+ "runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
+ "runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
+ "runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
+ "runtime.any.System.Runtime": "(,4.3.32767]",
+ "runtime.any.System.Runtime.Handles": "(,4.3.32767]",
+ "runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
+ "runtime.any.System.Text.Encoding": "(,4.3.32767]",
+ "runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
+ "runtime.any.System.Threading.Tasks": "(,4.3.32767]",
+ "runtime.any.System.Threading.Timer": "(,4.3.32767]",
+ "runtime.aot.System.Collections": "(,4.3.32767]",
+ "runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
+ "runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
+ "runtime.aot.System.Globalization": "(,4.3.32767]",
+ "runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
+ "runtime.aot.System.IO": "(,4.3.32767]",
+ "runtime.aot.System.Reflection": "(,4.3.32767]",
+ "runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
+ "runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
+ "runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
+ "runtime.aot.System.Runtime": "(,4.3.32767]",
+ "runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
+ "runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
+ "runtime.aot.System.Text.Encoding": "(,4.3.32767]",
+ "runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
+ "runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
+ "runtime.aot.System.Threading.Timer": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
+ "runtime.unix.System.Console": "(,4.3.32767]",
+ "runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
+ "runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
+ "runtime.unix.System.Net.Primitives": "(,4.3.32767]",
+ "runtime.unix.System.Net.Sockets": "(,4.3.32767]",
+ "runtime.unix.System.Private.Uri": "(,4.3.32767]",
+ "runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
+ "runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
+ "runtime.win.System.Console": "(,4.3.32767]",
+ "runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
+ "runtime.win.System.IO.FileSystem": "(,4.3.32767]",
+ "runtime.win.System.Net.Primitives": "(,4.3.32767]",
+ "runtime.win.System.Net.Sockets": "(,4.3.32767]",
+ "runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
+ "runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
+ "runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
+ "runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
+ "runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.win7.System.Private.Uri": "(,4.3.32767]",
+ "runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "System.AppContext": "(,4.3.32767]",
+ "System.Buffers": "(,5.0.32767]",
+ "System.Collections": "(,4.3.32767]",
+ "System.Collections.Concurrent": "(,4.3.32767]",
+ "System.Collections.Immutable": "(,10.0.32767]",
+ "System.Collections.NonGeneric": "(,4.3.32767]",
+ "System.Collections.Specialized": "(,4.3.32767]",
+ "System.ComponentModel": "(,4.3.32767]",
+ "System.ComponentModel.Annotations": "(,4.3.32767]",
+ "System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
+ "System.ComponentModel.Primitives": "(,4.3.32767]",
+ "System.ComponentModel.TypeConverter": "(,4.3.32767]",
+ "System.Console": "(,4.3.32767]",
+ "System.Data.Common": "(,4.3.32767]",
+ "System.Data.DataSetExtensions": "(,4.4.32767]",
+ "System.Diagnostics.Contracts": "(,4.3.32767]",
+ "System.Diagnostics.Debug": "(,4.3.32767]",
+ "System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
+ "System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
+ "System.Diagnostics.Process": "(,4.3.32767]",
+ "System.Diagnostics.StackTrace": "(,4.3.32767]",
+ "System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
+ "System.Diagnostics.Tools": "(,4.3.32767]",
+ "System.Diagnostics.TraceSource": "(,4.3.32767]",
+ "System.Diagnostics.Tracing": "(,4.3.32767]",
+ "System.Drawing.Primitives": "(,4.3.32767]",
+ "System.Dynamic.Runtime": "(,4.3.32767]",
+ "System.Formats.Asn1": "(,10.0.32767]",
+ "System.Formats.Tar": "(,10.0.32767]",
+ "System.Globalization": "(,4.3.32767]",
+ "System.Globalization.Calendars": "(,4.3.32767]",
+ "System.Globalization.Extensions": "(,4.3.32767]",
+ "System.IO": "(,4.3.32767]",
+ "System.IO.Compression": "(,4.3.32767]",
+ "System.IO.Compression.ZipFile": "(,4.3.32767]",
+ "System.IO.FileSystem": "(,4.3.32767]",
+ "System.IO.FileSystem.AccessControl": "(,4.4.32767]",
+ "System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
+ "System.IO.FileSystem.Primitives": "(,4.3.32767]",
+ "System.IO.FileSystem.Watcher": "(,4.3.32767]",
+ "System.IO.IsolatedStorage": "(,4.3.32767]",
+ "System.IO.MemoryMappedFiles": "(,4.3.32767]",
+ "System.IO.Pipelines": "(,10.0.32767]",
+ "System.IO.Pipes": "(,4.3.32767]",
+ "System.IO.Pipes.AccessControl": "(,5.0.32767]",
+ "System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
+ "System.Linq": "(,4.3.32767]",
+ "System.Linq.AsyncEnumerable": "(,10.0.32767]",
+ "System.Linq.Expressions": "(,4.3.32767]",
+ "System.Linq.Parallel": "(,4.3.32767]",
+ "System.Linq.Queryable": "(,4.3.32767]",
+ "System.Memory": "(,5.0.32767]",
+ "System.Net.Http": "(,4.3.32767]",
+ "System.Net.Http.Json": "(,10.0.32767]",
+ "System.Net.NameResolution": "(,4.3.32767]",
+ "System.Net.NetworkInformation": "(,4.3.32767]",
+ "System.Net.Ping": "(,4.3.32767]",
+ "System.Net.Primitives": "(,4.3.32767]",
+ "System.Net.Requests": "(,4.3.32767]",
+ "System.Net.Security": "(,4.3.32767]",
+ "System.Net.ServerSentEvents": "(,10.0.32767]",
+ "System.Net.Sockets": "(,4.3.32767]",
+ "System.Net.WebHeaderCollection": "(,4.3.32767]",
+ "System.Net.WebSockets": "(,4.3.32767]",
+ "System.Net.WebSockets.Client": "(,4.3.32767]",
+ "System.Numerics.Vectors": "(,5.0.32767]",
+ "System.ObjectModel": "(,4.3.32767]",
+ "System.Private.DataContractSerialization": "(,4.3.32767]",
+ "System.Private.Uri": "(,4.3.32767]",
+ "System.Reflection": "(,4.3.32767]",
+ "System.Reflection.DispatchProxy": "(,6.0.32767]",
+ "System.Reflection.Emit": "(,4.7.32767]",
+ "System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
+ "System.Reflection.Emit.Lightweight": "(,4.7.32767]",
+ "System.Reflection.Extensions": "(,4.3.32767]",
+ "System.Reflection.Metadata": "(,10.0.32767]",
+ "System.Reflection.Primitives": "(,4.3.32767]",
+ "System.Reflection.TypeExtensions": "(,4.3.32767]",
+ "System.Resources.Reader": "(,4.3.32767]",
+ "System.Resources.ResourceManager": "(,4.3.32767]",
+ "System.Resources.Writer": "(,4.3.32767]",
+ "System.Runtime": "(,4.3.32767]",
+ "System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
+ "System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
+ "System.Runtime.Extensions": "(,4.3.32767]",
+ "System.Runtime.Handles": "(,4.3.32767]",
+ "System.Runtime.InteropServices": "(,4.3.32767]",
+ "System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
+ "System.Runtime.Loader": "(,4.3.32767]",
+ "System.Runtime.Numerics": "(,4.3.32767]",
+ "System.Runtime.Serialization.Formatters": "(,4.3.32767]",
+ "System.Runtime.Serialization.Json": "(,4.3.32767]",
+ "System.Runtime.Serialization.Primitives": "(,4.3.32767]",
+ "System.Runtime.Serialization.Xml": "(,4.3.32767]",
+ "System.Security.AccessControl": "(,6.0.32767]",
+ "System.Security.Claims": "(,4.3.32767]",
+ "System.Security.Cryptography.Algorithms": "(,4.3.32767]",
+ "System.Security.Cryptography.Cng": "(,5.0.32767]",
+ "System.Security.Cryptography.Csp": "(,4.3.32767]",
+ "System.Security.Cryptography.Encoding": "(,4.3.32767]",
+ "System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
+ "System.Security.Cryptography.Primitives": "(,4.3.32767]",
+ "System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
+ "System.Security.Principal": "(,4.3.32767]",
+ "System.Security.Principal.Windows": "(,5.0.32767]",
+ "System.Security.SecureString": "(,4.3.32767]",
+ "System.Text.Encoding": "(,4.3.32767]",
+ "System.Text.Encoding.CodePages": "(,10.0.32767]",
+ "System.Text.Encoding.Extensions": "(,4.3.32767]",
+ "System.Text.Encodings.Web": "(,10.0.32767]",
+ "System.Text.Json": "(,10.0.32767]",
+ "System.Text.RegularExpressions": "(,4.3.32767]",
+ "System.Threading": "(,4.3.32767]",
+ "System.Threading.AccessControl": "(,10.0.32767]",
+ "System.Threading.Channels": "(,10.0.32767]",
+ "System.Threading.Overlapped": "(,4.3.32767]",
+ "System.Threading.Tasks": "(,4.3.32767]",
+ "System.Threading.Tasks.Dataflow": "(,10.0.32767]",
+ "System.Threading.Tasks.Extensions": "(,5.0.32767]",
+ "System.Threading.Tasks.Parallel": "(,4.3.32767]",
+ "System.Threading.Thread": "(,4.3.32767]",
+ "System.Threading.ThreadPool": "(,4.3.32767]",
+ "System.Threading.Timer": "(,4.3.32767]",
+ "System.ValueTuple": "(,4.5.32767]",
+ "System.Xml.ReaderWriter": "(,4.3.32767]",
+ "System.Xml.XDocument": "(,4.3.32767]",
+ "System.Xml.XmlDocument": "(,4.3.32767]",
+ "System.Xml.XmlSerializer": "(,4.3.32767]",
+ "System.Xml.XPath": "(,4.3.32767]",
+ "System.Xml.XPath.XDocument": "(,5.0.32767]"
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tag 2/obj/Tag 2.csproj.nuget.g.props b/Tag 2/Aufgaben/obj/Aufgaben.csproj.nuget.g.props
similarity index 100%
rename from Tag 2/obj/Tag 2.csproj.nuget.g.props
rename to Tag 2/Aufgaben/obj/Aufgaben.csproj.nuget.g.props
diff --git a/Tag 2/obj/Tag 2.csproj.nuget.g.targets b/Tag 2/Aufgaben/obj/Aufgaben.csproj.nuget.g.targets
similarity index 100%
rename from Tag 2/obj/Tag 2.csproj.nuget.g.targets
rename to Tag 2/Aufgaben/obj/Aufgaben.csproj.nuget.g.targets
diff --git a/Tag 2/Aufgaben/obj/project.assets.json b/Tag 2/Aufgaben/obj/project.assets.json
new file mode 100644
index 0000000..58ea7bc
--- /dev/null
+++ b/Tag 2/Aufgaben/obj/project.assets.json
@@ -0,0 +1,347 @@
+{
+ "version": 3,
+ "targets": {
+ "net10.0": {}
+ },
+ "libraries": {},
+ "projectFileDependencyGroups": {
+ "net10.0": []
+ },
+ "packageFolders": {
+ "/home/wbs/.nuget/packages/": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj",
+ "projectName": "Aufgaben",
+ "projectPath": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj",
+ "packagesPath": "/home/wbs/.nuget/packages/",
+ "outputPath": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/obj/",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "/home/wbs/.nuget/NuGet/NuGet.Config"
+ ],
+ "originalTargetFrameworks": [
+ "net10.0"
+ ],
+ "sources": {
+ "/usr/lib64/dotnet/library-packs": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net10.0": {
+ "targetAlias": "net10.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ },
+ "restoreAuditProperties": {
+ "enableAudit": "true",
+ "auditLevel": "low",
+ "auditMode": "all"
+ },
+ "SdkAnalysisLevel": "10.0.100"
+ },
+ "frameworks": {
+ "net10.0": {
+ "targetAlias": "net10.0",
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/10.0.110/PortableRuntimeIdentifierGraph.json",
+ "packagesToPrune": {
+ "Microsoft.CSharp": "(,4.7.32767]",
+ "Microsoft.VisualBasic": "(,10.4.32767]",
+ "Microsoft.Win32.Primitives": "(,4.3.32767]",
+ "Microsoft.Win32.Registry": "(,5.0.32767]",
+ "runtime.any.System.Collections": "(,4.3.32767]",
+ "runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
+ "runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
+ "runtime.any.System.Globalization": "(,4.3.32767]",
+ "runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
+ "runtime.any.System.IO": "(,4.3.32767]",
+ "runtime.any.System.Reflection": "(,4.3.32767]",
+ "runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
+ "runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
+ "runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
+ "runtime.any.System.Runtime": "(,4.3.32767]",
+ "runtime.any.System.Runtime.Handles": "(,4.3.32767]",
+ "runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
+ "runtime.any.System.Text.Encoding": "(,4.3.32767]",
+ "runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
+ "runtime.any.System.Threading.Tasks": "(,4.3.32767]",
+ "runtime.any.System.Threading.Timer": "(,4.3.32767]",
+ "runtime.aot.System.Collections": "(,4.3.32767]",
+ "runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
+ "runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
+ "runtime.aot.System.Globalization": "(,4.3.32767]",
+ "runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
+ "runtime.aot.System.IO": "(,4.3.32767]",
+ "runtime.aot.System.Reflection": "(,4.3.32767]",
+ "runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
+ "runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
+ "runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
+ "runtime.aot.System.Runtime": "(,4.3.32767]",
+ "runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
+ "runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
+ "runtime.aot.System.Text.Encoding": "(,4.3.32767]",
+ "runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
+ "runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
+ "runtime.aot.System.Threading.Timer": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
+ "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
+ "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
+ "runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
+ "runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
+ "runtime.unix.System.Console": "(,4.3.32767]",
+ "runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
+ "runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
+ "runtime.unix.System.Net.Primitives": "(,4.3.32767]",
+ "runtime.unix.System.Net.Sockets": "(,4.3.32767]",
+ "runtime.unix.System.Private.Uri": "(,4.3.32767]",
+ "runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
+ "runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
+ "runtime.win.System.Console": "(,4.3.32767]",
+ "runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
+ "runtime.win.System.IO.FileSystem": "(,4.3.32767]",
+ "runtime.win.System.Net.Primitives": "(,4.3.32767]",
+ "runtime.win.System.Net.Sockets": "(,4.3.32767]",
+ "runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
+ "runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
+ "runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
+ "runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
+ "runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "runtime.win7.System.Private.Uri": "(,4.3.32767]",
+ "runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
+ "System.AppContext": "(,4.3.32767]",
+ "System.Buffers": "(,5.0.32767]",
+ "System.Collections": "(,4.3.32767]",
+ "System.Collections.Concurrent": "(,4.3.32767]",
+ "System.Collections.Immutable": "(,10.0.32767]",
+ "System.Collections.NonGeneric": "(,4.3.32767]",
+ "System.Collections.Specialized": "(,4.3.32767]",
+ "System.ComponentModel": "(,4.3.32767]",
+ "System.ComponentModel.Annotations": "(,4.3.32767]",
+ "System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
+ "System.ComponentModel.Primitives": "(,4.3.32767]",
+ "System.ComponentModel.TypeConverter": "(,4.3.32767]",
+ "System.Console": "(,4.3.32767]",
+ "System.Data.Common": "(,4.3.32767]",
+ "System.Data.DataSetExtensions": "(,4.4.32767]",
+ "System.Diagnostics.Contracts": "(,4.3.32767]",
+ "System.Diagnostics.Debug": "(,4.3.32767]",
+ "System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
+ "System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
+ "System.Diagnostics.Process": "(,4.3.32767]",
+ "System.Diagnostics.StackTrace": "(,4.3.32767]",
+ "System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
+ "System.Diagnostics.Tools": "(,4.3.32767]",
+ "System.Diagnostics.TraceSource": "(,4.3.32767]",
+ "System.Diagnostics.Tracing": "(,4.3.32767]",
+ "System.Drawing.Primitives": "(,4.3.32767]",
+ "System.Dynamic.Runtime": "(,4.3.32767]",
+ "System.Formats.Asn1": "(,10.0.32767]",
+ "System.Formats.Tar": "(,10.0.32767]",
+ "System.Globalization": "(,4.3.32767]",
+ "System.Globalization.Calendars": "(,4.3.32767]",
+ "System.Globalization.Extensions": "(,4.3.32767]",
+ "System.IO": "(,4.3.32767]",
+ "System.IO.Compression": "(,4.3.32767]",
+ "System.IO.Compression.ZipFile": "(,4.3.32767]",
+ "System.IO.FileSystem": "(,4.3.32767]",
+ "System.IO.FileSystem.AccessControl": "(,4.4.32767]",
+ "System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
+ "System.IO.FileSystem.Primitives": "(,4.3.32767]",
+ "System.IO.FileSystem.Watcher": "(,4.3.32767]",
+ "System.IO.IsolatedStorage": "(,4.3.32767]",
+ "System.IO.MemoryMappedFiles": "(,4.3.32767]",
+ "System.IO.Pipelines": "(,10.0.32767]",
+ "System.IO.Pipes": "(,4.3.32767]",
+ "System.IO.Pipes.AccessControl": "(,5.0.32767]",
+ "System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
+ "System.Linq": "(,4.3.32767]",
+ "System.Linq.AsyncEnumerable": "(,10.0.32767]",
+ "System.Linq.Expressions": "(,4.3.32767]",
+ "System.Linq.Parallel": "(,4.3.32767]",
+ "System.Linq.Queryable": "(,4.3.32767]",
+ "System.Memory": "(,5.0.32767]",
+ "System.Net.Http": "(,4.3.32767]",
+ "System.Net.Http.Json": "(,10.0.32767]",
+ "System.Net.NameResolution": "(,4.3.32767]",
+ "System.Net.NetworkInformation": "(,4.3.32767]",
+ "System.Net.Ping": "(,4.3.32767]",
+ "System.Net.Primitives": "(,4.3.32767]",
+ "System.Net.Requests": "(,4.3.32767]",
+ "System.Net.Security": "(,4.3.32767]",
+ "System.Net.ServerSentEvents": "(,10.0.32767]",
+ "System.Net.Sockets": "(,4.3.32767]",
+ "System.Net.WebHeaderCollection": "(,4.3.32767]",
+ "System.Net.WebSockets": "(,4.3.32767]",
+ "System.Net.WebSockets.Client": "(,4.3.32767]",
+ "System.Numerics.Vectors": "(,5.0.32767]",
+ "System.ObjectModel": "(,4.3.32767]",
+ "System.Private.DataContractSerialization": "(,4.3.32767]",
+ "System.Private.Uri": "(,4.3.32767]",
+ "System.Reflection": "(,4.3.32767]",
+ "System.Reflection.DispatchProxy": "(,6.0.32767]",
+ "System.Reflection.Emit": "(,4.7.32767]",
+ "System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
+ "System.Reflection.Emit.Lightweight": "(,4.7.32767]",
+ "System.Reflection.Extensions": "(,4.3.32767]",
+ "System.Reflection.Metadata": "(,10.0.32767]",
+ "System.Reflection.Primitives": "(,4.3.32767]",
+ "System.Reflection.TypeExtensions": "(,4.3.32767]",
+ "System.Resources.Reader": "(,4.3.32767]",
+ "System.Resources.ResourceManager": "(,4.3.32767]",
+ "System.Resources.Writer": "(,4.3.32767]",
+ "System.Runtime": "(,4.3.32767]",
+ "System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
+ "System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
+ "System.Runtime.Extensions": "(,4.3.32767]",
+ "System.Runtime.Handles": "(,4.3.32767]",
+ "System.Runtime.InteropServices": "(,4.3.32767]",
+ "System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
+ "System.Runtime.Loader": "(,4.3.32767]",
+ "System.Runtime.Numerics": "(,4.3.32767]",
+ "System.Runtime.Serialization.Formatters": "(,4.3.32767]",
+ "System.Runtime.Serialization.Json": "(,4.3.32767]",
+ "System.Runtime.Serialization.Primitives": "(,4.3.32767]",
+ "System.Runtime.Serialization.Xml": "(,4.3.32767]",
+ "System.Security.AccessControl": "(,6.0.32767]",
+ "System.Security.Claims": "(,4.3.32767]",
+ "System.Security.Cryptography.Algorithms": "(,4.3.32767]",
+ "System.Security.Cryptography.Cng": "(,5.0.32767]",
+ "System.Security.Cryptography.Csp": "(,4.3.32767]",
+ "System.Security.Cryptography.Encoding": "(,4.3.32767]",
+ "System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
+ "System.Security.Cryptography.Primitives": "(,4.3.32767]",
+ "System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
+ "System.Security.Principal": "(,4.3.32767]",
+ "System.Security.Principal.Windows": "(,5.0.32767]",
+ "System.Security.SecureString": "(,4.3.32767]",
+ "System.Text.Encoding": "(,4.3.32767]",
+ "System.Text.Encoding.CodePages": "(,10.0.32767]",
+ "System.Text.Encoding.Extensions": "(,4.3.32767]",
+ "System.Text.Encodings.Web": "(,10.0.32767]",
+ "System.Text.Json": "(,10.0.32767]",
+ "System.Text.RegularExpressions": "(,4.3.32767]",
+ "System.Threading": "(,4.3.32767]",
+ "System.Threading.AccessControl": "(,10.0.32767]",
+ "System.Threading.Channels": "(,10.0.32767]",
+ "System.Threading.Overlapped": "(,4.3.32767]",
+ "System.Threading.Tasks": "(,4.3.32767]",
+ "System.Threading.Tasks.Dataflow": "(,10.0.32767]",
+ "System.Threading.Tasks.Extensions": "(,5.0.32767]",
+ "System.Threading.Tasks.Parallel": "(,4.3.32767]",
+ "System.Threading.Thread": "(,4.3.32767]",
+ "System.Threading.ThreadPool": "(,4.3.32767]",
+ "System.Threading.Timer": "(,4.3.32767]",
+ "System.ValueTuple": "(,4.5.32767]",
+ "System.Xml.ReaderWriter": "(,4.3.32767]",
+ "System.Xml.XDocument": "(,4.3.32767]",
+ "System.Xml.XmlDocument": "(,4.3.32767]",
+ "System.Xml.XmlSerializer": "(,4.3.32767]",
+ "System.Xml.XPath": "(,4.3.32767]",
+ "System.Xml.XPath.XDocument": "(,5.0.32767]"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tag 2/Aufgaben/obj/project.nuget.cache b/Tag 2/Aufgaben/obj/project.nuget.cache
new file mode 100644
index 0000000..c140344
--- /dev/null
+++ b/Tag 2/Aufgaben/obj/project.nuget.cache
@@ -0,0 +1,8 @@
+{
+ "version": 2,
+ "dgSpecHash": "GWzEprZOvw8=",
+ "success": true,
+ "projectFilePath": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj",
+ "expectedPackageFiles": [],
+ "logs": []
+}
\ No newline at end of file
diff --git a/Tag 2/Program.cs b/Tag 2/Unterricht/Program.cs
similarity index 61%
rename from Tag 2/Program.cs
rename to Tag 2/Unterricht/Program.cs
index d068b83..adb9b26 100644
--- a/Tag 2/Program.cs
+++ b/Tag 2/Unterricht/Program.cs
@@ -1,2 +1,3 @@
using Tag_02_Unterricht;
+Vererbung.Main();
diff --git a/Tag 2/Statische_Felder.cs b/Tag 2/Unterricht/Statische_Felder.cs
similarity index 100%
rename from Tag 2/Statische_Felder.cs
rename to Tag 2/Unterricht/Statische_Felder.cs
diff --git a/Tag 2/Tag 2.csproj b/Tag 2/Unterricht/Tag 2.csproj
similarity index 100%
rename from Tag 2/Tag 2.csproj
rename to Tag 2/Unterricht/Tag 2.csproj
diff --git a/Tag 2/Unterricht/Vererbung.cs b/Tag 2/Unterricht/Vererbung.cs
new file mode 100644
index 0000000..c4ec0cf
--- /dev/null
+++ b/Tag 2/Unterricht/Vererbung.cs
@@ -0,0 +1,70 @@
+namespace Tag_02_Unterricht;
+
+public class Vererbung
+{
+ public static void Main()
+ {
+ var kaffee = new Kaffee();
+ kaffee.WieHeißBinIch();
+
+ var tee = new Tee();
+
+ var getränke = new List();
+ getränke.Add(kaffee);
+ getränke.Add(tee);
+
+ foreach (var getränk in getränke){
+ getränk.Ausgießen();
+ }
+
+ Getränk kaffeeAlsGetränk = new Kaffee();
+
+ if (kaffeeAlsGetränk is Kaffee) Console.WriteLine("Das Getränk ist ein Kaffee.");
+ if (kaffeeAlsGetränk is Tee) Console.WriteLine("Das Getränk ist ein Tee.");
+
+ if (kaffeeAlsGetränk is Kaffee)
+ {
+ var wiederAlsKaffee = (Kaffee) kaffeeAlsGetränk;
+ }
+
+ }
+}
+
+class Getränk
+{
+ protected int temperatur = 100;
+}
+
+interface IFlüssigkeit
+{
+ void Ausgießen();
+}
+
+interface INahrungsmittel
+{
+
+}
+
+class Kaffee : Getränk, IFlüssigkeit
+{
+ protected int koffeingehalt;
+
+ public void WieHeißBinIch()
+ {
+ Console.WriteLine(temperatur);
+ }
+
+ public void Ausgießen()
+ {
+ Console.WriteLine("Blubb blubb blubb!");
+ }
+}
+
+
+class Tee : Getränk, IFlüssigkeit
+{
+ public void Ausgießen()
+ {
+ Console.WriteLine("Blubb blubb!");
+ }
+}
diff --git a/Tag 2/bin/Debug/net10.0/Tag 2 b/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2
similarity index 100%
rename from Tag 2/bin/Debug/net10.0/Tag 2
rename to Tag 2/Unterricht/bin/Debug/net10.0/Tag 2
diff --git a/Tag 2/bin/Debug/net10.0/Tag 2.deps.json b/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.deps.json
similarity index 100%
rename from Tag 2/bin/Debug/net10.0/Tag 2.deps.json
rename to Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.deps.json
diff --git a/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.dll b/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.dll
new file mode 100644
index 0000000..a95b71a
Binary files /dev/null and b/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.dll differ
diff --git a/Tag 2/bin/Debug/net10.0/Tag 2.pdb b/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.pdb
similarity index 86%
rename from Tag 2/bin/Debug/net10.0/Tag 2.pdb
rename to Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.pdb
index ec15509..86243a8 100644
Binary files a/Tag 2/bin/Debug/net10.0/Tag 2.pdb and b/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.pdb differ
diff --git a/Tag 2/bin/Debug/net10.0/Tag 2.runtimeconfig.json b/Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.runtimeconfig.json
similarity index 100%
rename from Tag 2/bin/Debug/net10.0/Tag 2.runtimeconfig.json
rename to Tag 2/Unterricht/bin/Debug/net10.0/Tag 2.runtimeconfig.json
diff --git a/Tag 2/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs b/Tag 2/Unterricht/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs
rename to Tag 2/Unterricht/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.AssemblyInfo.cs b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.AssemblyInfo.cs
similarity index 94%
rename from Tag 2/obj/Debug/net10.0/Tag 2.AssemblyInfo.cs
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.AssemblyInfo.cs
index 4e4a015..ba3d4aa 100644
--- a/Tag 2/obj/Debug/net10.0/Tag 2.AssemblyInfo.cs
+++ b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.AssemblyInfo.cs
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Tag 2")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+82b48974c5a5b7c061261157a2cdf31b7722d5bc")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a1b96f6869d673e84959fa00494734298395b45d")]
[assembly: System.Reflection.AssemblyProductAttribute("Tag 2")]
[assembly: System.Reflection.AssemblyTitleAttribute("Tag 2")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.AssemblyInfoInputs.cache b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.AssemblyInfoInputs.cache
new file mode 100644
index 0000000..b5b4337
--- /dev/null
+++ b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+116d5cd724e53d9a82cfc43aa9c77bbf0f01f4a6ad4d601983e408087cf1a186
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.GeneratedMSBuildEditorConfig.editorconfig b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.GeneratedMSBuildEditorConfig.editorconfig
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/Tag 2.GeneratedMSBuildEditorConfig.editorconfig
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.GeneratedMSBuildEditorConfig.editorconfig
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.GlobalUsings.g.cs b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.GlobalUsings.g.cs
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/Tag 2.GlobalUsings.g.cs
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.GlobalUsings.g.cs
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.assets.cache b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.assets.cache
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/Tag 2.assets.cache
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.assets.cache
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.csproj.CoreCompileInputs.cache b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.csproj.CoreCompileInputs.cache
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/Tag 2.csproj.CoreCompileInputs.cache
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.csproj.CoreCompileInputs.cache
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.csproj.FileListAbsolute.txt b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.csproj.FileListAbsolute.txt
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/Tag 2.csproj.FileListAbsolute.txt
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.csproj.FileListAbsolute.txt
diff --git a/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.dll b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.dll
new file mode 100644
index 0000000..a95b71a
Binary files /dev/null and b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.dll differ
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.genruntimeconfig.cache b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.genruntimeconfig.cache
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/Tag 2.genruntimeconfig.cache
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.genruntimeconfig.cache
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.pdb b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.pdb
similarity index 86%
rename from Tag 2/obj/Debug/net10.0/Tag 2.pdb
rename to Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.pdb
index ec15509..86243a8 100644
Binary files a/Tag 2/obj/Debug/net10.0/Tag 2.pdb and b/Tag 2/Unterricht/obj/Debug/net10.0/Tag 2.pdb differ
diff --git a/Tag 2/obj/Debug/net10.0/apphost b/Tag 2/Unterricht/obj/Debug/net10.0/apphost
similarity index 100%
rename from Tag 2/obj/Debug/net10.0/apphost
rename to Tag 2/Unterricht/obj/Debug/net10.0/apphost
diff --git a/Tag 2/Unterricht/obj/Debug/net10.0/ref/Tag 2.dll b/Tag 2/Unterricht/obj/Debug/net10.0/ref/Tag 2.dll
new file mode 100644
index 0000000..1d35363
Binary files /dev/null and b/Tag 2/Unterricht/obj/Debug/net10.0/ref/Tag 2.dll differ
diff --git a/Tag 2/Unterricht/obj/Debug/net10.0/refint/Tag 2.dll b/Tag 2/Unterricht/obj/Debug/net10.0/refint/Tag 2.dll
new file mode 100644
index 0000000..1d35363
Binary files /dev/null and b/Tag 2/Unterricht/obj/Debug/net10.0/refint/Tag 2.dll differ
diff --git a/Tag 2/obj/Tag 2.csproj.nuget.dgspec.json b/Tag 2/Unterricht/obj/Tag 2.csproj.nuget.dgspec.json
similarity index 100%
rename from Tag 2/obj/Tag 2.csproj.nuget.dgspec.json
rename to Tag 2/Unterricht/obj/Tag 2.csproj.nuget.dgspec.json
diff --git a/Tag 2/Unterricht/obj/Tag 2.csproj.nuget.g.props b/Tag 2/Unterricht/obj/Tag 2.csproj.nuget.g.props
new file mode 100644
index 0000000..58a40d4
--- /dev/null
+++ b/Tag 2/Unterricht/obj/Tag 2.csproj.nuget.g.props
@@ -0,0 +1,15 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ /home/wbs/.nuget/packages/
+ /home/wbs/.nuget/packages/
+ PackageReference
+ 7.0.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Tag 2/Unterricht/obj/Tag 2.csproj.nuget.g.targets b/Tag 2/Unterricht/obj/Tag 2.csproj.nuget.g.targets
new file mode 100644
index 0000000..3dc06ef
--- /dev/null
+++ b/Tag 2/Unterricht/obj/Tag 2.csproj.nuget.g.targets
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/Tag 2/obj/project.assets.json b/Tag 2/Unterricht/obj/project.assets.json
similarity index 100%
rename from Tag 2/obj/project.assets.json
rename to Tag 2/Unterricht/obj/project.assets.json
diff --git a/Tag 2/obj/project.nuget.cache b/Tag 2/Unterricht/obj/project.nuget.cache
similarity index 100%
rename from Tag 2/obj/project.nuget.cache
rename to Tag 2/Unterricht/obj/project.nuget.cache
diff --git a/Tag 2/Vererbung.cs b/Tag 2/Vererbung.cs
deleted file mode 100644
index f22e0bc..0000000
--- a/Tag 2/Vererbung.cs
+++ /dev/null
@@ -1,38 +0,0 @@
-namespace Tag_02_Unterricht;
-
-public class Vererbung
-{
- public static void Main()
- {
-
- }
-}
-
-class Getränk
-{
- protected int temperatur = 100;
-}
-
-interface IFlüssigkeit
-{
- void Ausgießen();
-}
-
-class Kaffee : Getränk, IFlüssigkeit
-{
- public void WieHeißBinIch()
- {
- Console.WriteLine(temperatur);
- }
-
- public void Ausgießen()
- {
- Console.WriteLine("Blubb blubb blubb!");
- }
-}
-
-
-class Tee : Getränk
-{
-
-}
diff --git a/Tag 2/bin/Debug/net10.0/Tag 2.dll b/Tag 2/bin/Debug/net10.0/Tag 2.dll
deleted file mode 100644
index abfface..0000000
Binary files a/Tag 2/bin/Debug/net10.0/Tag 2.dll and /dev/null differ
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.AssemblyInfoInputs.cache b/Tag 2/obj/Debug/net10.0/Tag 2.AssemblyInfoInputs.cache
deleted file mode 100644
index 305481a..0000000
--- a/Tag 2/obj/Debug/net10.0/Tag 2.AssemblyInfoInputs.cache
+++ /dev/null
@@ -1 +0,0 @@
-5a623c4213abefbfc2fc0937f8bed02e01d1eb42bf609f24fb5d4b34751a4adc
diff --git a/Tag 2/obj/Debug/net10.0/Tag 2.dll b/Tag 2/obj/Debug/net10.0/Tag 2.dll
deleted file mode 100644
index abfface..0000000
Binary files a/Tag 2/obj/Debug/net10.0/Tag 2.dll and /dev/null differ
diff --git a/Tag 2/obj/Debug/net10.0/ref/Tag 2.dll b/Tag 2/obj/Debug/net10.0/ref/Tag 2.dll
deleted file mode 100644
index 6f6318c..0000000
Binary files a/Tag 2/obj/Debug/net10.0/ref/Tag 2.dll and /dev/null differ
diff --git a/Tag 2/obj/Debug/net10.0/refint/Tag 2.dll b/Tag 2/obj/Debug/net10.0/refint/Tag 2.dll
deleted file mode 100644
index 6f6318c..0000000
Binary files a/Tag 2/obj/Debug/net10.0/refint/Tag 2.dll and /dev/null differ