Interfaces + Bugfix Klassen

This commit is contained in:
2024-07-23 08:27:59 +02:00
parent 7f5fedfe16
commit 9fc4489559
7 changed files with 166 additions and 16 deletions

View File

@@ -18,28 +18,37 @@ namespace Exercises_C_Sharp.E42_Interfaces
//Code ENDE
class Person{
class Person /*Code START*//*Code ENDE*/{
string _personName;
public Person(string name)
{
_personName = name;
}
//Code START
//Code ENDE
}
class Customer{
class Customer /*Code START*//*Code ENDE*/{
string _customerName;
public Customer(string name)
{
_customerName = name;
}
//Code START
//Code ENDE
}
class Human{
class Human /*Code START*//*Code ENDE*/{
string _humanName;
public Human(string name)
{
_humanName = name;
}
//Code START
//Code ENDE
}
}

View File

@@ -26,7 +26,15 @@ namespace Exercises_C_Sharp.E42_Interfaces
}
}
//ToDo!!!!
foreach(var element in byteList)
{
// 0 0 0 0 0 0 0 0
// 1 1 1 1 1 1 1 1
int frequency = element | 0b00001111;
int duration = element | 0b11110000;
Console.Beep(frequency, duration);
Task.Delay(500);
}
}
}

View File

@@ -1,10 +1,48 @@
namespace Exercises_C_Sharp.E42_Interfaces
{
//Sie sehen unten drei Methoden, die alle drei zu verschiedenen Schnittstellen von der Software führen. Die Schnittstellen haben alle drei fest definierte Interfaces.
//Sie sollen nun eine Klasse schreiben, die von allen drei Interfaces ableitet. Erstellen Sie dann in der Start-Methode ein neues Objekt Ihrer Klasse und rufen Sie die drei Methoden mit dem Objekt auf.
class Exercise_3
{
public static void Start()
{
//ToDo!!!!
//Code START
//Code ENDE
}
static void BringerMeth(IBringer bring)
{
bring.Bring("Stuff");
}
static void GetIt(IGetter getter)
{
Console.WriteLine(getter.Get());
}
static void Receiver(IReceiver receiver)
{
Console.WriteLine(receiver.Receive());
}
}
interface IBringer
{
void Bring(string val);
}
interface IGetter
{
string Get();
}
interface IReceiver
{
string Receive();
}
//Code START
//Code ENDE
}

View File

@@ -0,0 +1,85 @@
using System.Reflection.Metadata.Ecma335;
namespace Exercises_C_Sharp.E42_Interfaces
{
//Sie sollen eine Aufgabe übernehmen, die eine nicht ganz so begabter Praktikant angefangen hat.
//Diese bestand darin, für jede Wortart eine Klasse zu erstellen, was dieser auch gemacht hat. Jetzt gibt es eine Methode SentenceMaker(), die die Wörter zusammensetzt und einen Text zurück gibt. Leider ist es dort nicht möglich, mehrere Sätze erzeugen zu lassen.
//Ihre Aufgabe ist nun, dass mehrere Wörter übergeben werden können, woraus mehrere Sätze gemacht und zurück gegeben werden sollen. Erstellen Sie dafür ein Interface, von dem alle Klassen ableiten.
class Exercise_4
{
public static void Start()
{
//Zum Schluss: Erstellen Sie hier mehrere Objekte der Klassen und rufen Sie die SentenceMaker()-Methode damit auf.
//Code START
//Code ENDE
}
//Code START
static string SentenceMaker(Article article, Nomen nomen, Verb verb, Adjective adjective)
{
return string.Format("{0} {1} {2} {3}.", article.BackArticle(), nomen.GiveNomen(), verb.GetVerb(), adjective.ReturnAdjective());
}
//Code ENDE
}
//Hier können Sie das Interface definieren, welches die unteren Klassen implementieren sollen
//Code START
//Code ENDE
class Verb
{
string _verb {get;set;}
public Verb(string val)
{
_verb = val;
}
//Code START
public string GetVerb() => _verb;
//Code ENDE
}
class Nomen
{
string _nomen {get;set;}
public Nomen(string val)
{
_nomen = val;
}
//Code START
public string GiveNomen() => _nomen;
//Code ENDE
}
class Adjective
{
string _adjective {get;set;}
public Adjective(string val)
{
_adjective = val;
}
//Code START
public string ReturnAdjective() => _adjective;
//Code ENDE
}
class Article
{
string _article {get;set;}
public Article(string val)
{
_article = val;
}
//Code START
public string BackArticle() => _article;
//Code ENDE
}
}