Unterricht 11.08.

This commit is contained in:
wbs
2026-08-11 11:40:28 +02:00
parent a1b96f6869
commit 7ee9f7f235
59 changed files with 1561 additions and 40 deletions
Binary file not shown.
+10
View File
@@ -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.
*/
+14
View File
@@ -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.
*/
+15
View File
@@ -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.
*/
+10
View File
@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
+13
View File
@@ -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();
}
}
}
+35
View File
@@ -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}");
}
}
}
+32
View File
@@ -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();
}
}
}
+32
View File
@@ -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.");
}
}
}
+108
View File
@@ -0,0 +1,108 @@
using System;
using System.Collections.Generic;
class Artikel
{
/// <summary>
/// In dieser Liste werden alle Artikel abgespeichert.
/// </summary>
public static readonly List<Artikel> artikelListe = new List<Artikel>();
private int id; // privates Feld
/// <summary>
/// Die ID des Artikels.
/// </summary>
public int Id // Dazugehöriger, öffentlicher Getter
{
get => id;
}
private string bezeichnung;
/// <summary>
/// Die Bezeichnung des Artikels.
/// </summary>
public string Bezeichnung
{
get => bezeichnung;
}
private double einkaufspreis;
/// <summary>
/// Der Einkaufspreis des Artikels, muss größer 0 sein.
/// </summary>
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;
/// <summary>
/// Der Gewinnsatz des Artikels.
/// </summary>
public int Gewinnsatz
{
get => gewinnsatz; // Getter
set => gewinnsatz = value; // Setter
}
/// <summary>
/// Gibt den Verkaufspreis des Artikels zurück. Berechnet aus Einkaufspreis + Gewinnsatz.
/// </summary>
public double Verkaufspreis
{
get => Math.Round(einkaufspreis + (einkaufspreis / 100.0 * gewinnsatz), 2);
}
/// <summary>
/// Sucht in der ArtikelListe nach dem Artikel mit der übergebenen ID und gibt diesen zurück.
/// </summary>
/// <param name="artikelId">artikelId Die ID des gesuchten Artikels.</param>
/// <returns>Den gesuchten Artikel oder null.</returns>
public static Artikel? getArtikel(int artikelId)
{
foreach (Artikel artikel in artikelListe)
{
if (artikel.id == artikelId)
return artikel;
}
return null;
}
/// <summary>
/// Gibt einen String mit Informationen über den Artikel zurück.
/// </summary>
/// <returns>Einen string aus Id, Bezeichnung und Verkaufspreis.</returns>
public String GetArtikelString()
{
return String.Format($"ID : {id} - Bezeichnung: {bezeichnung} - Einzelpreis: {Verkaufspreis:C2}");
}
/// <summary>
/// Instanziiert einen Artikel und fügt ihn der ArtikelListe hinzu.
/// </summary>
/// <param name="id">ID des Artikels</param>
/// <param name="bezeichnung">Bezeichnung des Artikels</param>
/// <param name="einkaufspreis">Einkaufspreis des Artikels - muss größer 0 sein</param>
/// <param name="gewinnsatz">Gewinnsatz des Artikels</param>
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.
}
}
Binary file not shown.
+114
View File
@@ -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!");
}
}
}
Binary file not shown.
+141
View File
@@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
using System.Text;
class Warenkorb
{
/**
* Eine Liste aller Artikel im Warenkorb.
*/
private List<WarenkorbItem> itemListe = new List<WarenkorbItem>();
/**
* 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.
* <br/>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.
* <br/>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();
}
}
@@ -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;
}
}
+31
View File
@@ -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}";
}
}
}
+42
View File
@@ -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());
}
}
}
+95
View File
@@ -0,0 +1,95 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Lösungen
{
internal class Warenkorb
{
private List<WarenkorbItem> warenkorbItemListe = new List<WarenkorbItem>();
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();
}
}
}
@@ -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}";
}
}
}
+2
View File
@@ -0,0 +1,2 @@
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
@@ -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]"
}
}
}
}
}
}
+347
View File
@@ -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]"
}
}
}
}
}
+8
View File
@@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "GWzEprZOvw8=",
"success": true,
"projectFilePath": "/home/wbs/Dokumente/Programmierung/wbs-csharp/Tag 2/Aufgaben/Aufgaben.csproj",
"expectedPackageFiles": [],
"logs": []
}
@@ -1,2 +1,3 @@
using Tag_02_Unterricht; using Tag_02_Unterricht;
Vererbung.Main();
+70
View File
@@ -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<IFlüssigkeit>();
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!");
}
}
Binary file not shown.
@@ -13,7 +13,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Tag 2")] [assembly: System.Reflection.AssemblyCompanyAttribute("Tag 2")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [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.AssemblyProductAttribute("Tag 2")]
[assembly: System.Reflection.AssemblyTitleAttribute("Tag 2")] [assembly: System.Reflection.AssemblyTitleAttribute("Tag 2")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -0,0 +1 @@
116d5cd724e53d9a82cfc43aa9c77bbf0f01f4a6ad4d601983e408087cf1a186
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/wbs/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/wbs/.nuget/packages/</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="/home/wbs/.nuget/packages/" />
</ItemGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
-38
View File
@@ -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
{
}
Binary file not shown.
@@ -1 +0,0 @@
5a623c4213abefbfc2fc0937f8bed02e01d1eb42bf609f24fb5d4b34751a4adc
Binary file not shown.
Binary file not shown.
Binary file not shown.