Hallo,
Ich würde gerne zwei Variablen der Structure hinzufügen und die nicht verwendete Variable auf 0 setzen lassen.
die zwei Variablen sollen bestimmen ob der Betrag eine Ausgabe oder Einnahme ist. Wie gehe ich da genau vor?
Bisher habe ich das hier
public struct Eintrag
{
public string Betreff;
public decimal Betrag;
public Eintrag(string betreff, decimal betrag)
{
Betreff = betreff;
Betrag = betrag;
}
}
Hi Apollo56,
ich weiß leider nicht genau, welche zwei Variablen Du meinst, die Du hinzufügen möchtest. Dein struct
hat ja aktuell schon zwei Variablen. Daher versuche ich mal, wie Frage ein wenig umzuformulieren:
Du hast das struct
"Eintrag" mit den Variablen string Betreff
und decimal Betrag
. Nun möchtest Du über irgendeinen Weg festlegen können, ob der Betrag eine Einnahme oder eine Ausgabe ist.
Trifft das den Kern Deiner Frage? Falls ja, dann habe ich hier ein paar Denkanstöße für Dich:
bool istEinnahme
. Wenn es eine Einnahme ist, setzt du istEInnahme
auf true
, ansonsten auf false
. Das ist eine recht einfache Lösung, aber kann nicht gut erweitert werden. Wenn Du zum Beispiel später noch zwischen erhaltenen Überweisungen und erhaltenen Zinsen unterscheiden willst, geht das nicht mehr mit einer einzigen bool
-Variable.enum
) arbeiten, ein Beispiel dazu ist unten
public enum EintragTyp
{
Einnahme,
Ausgabe
// Hier könntest du noch weitere Typen definieren, etwa Zinsen, Überweisungen vs. Kartenzahlungen etc
}
public struct Eintrag
{
public string Betreff;
public decimal Betrag;
public EintragTyp Typ;
public Eintrag(string betreff, decimal betrag, EintragTyp typ)
{
Betreff = betreff;
Betrag = betrag;
Typ = typ;
}
}
// Neue Einträge könnten dann wie folgt erstellt werden:
Eintrag eintrag1 = new("Demo-Einnahme", 25, EintragTyp.Einnahme);
Eintrag eintrag2 = new("Demo-Ausgabe", 13, EintragTyp.Ausgabe);
Viele Grüße
Lukas
Vorweg: ich versteh auch nicht was Du willst.
Les mal Deinen Beitrag durch und versetz Dich in die Lage eines potentiellen Helfers. Würdest Du es selbst verstehen, was Du schreibst?
Hinweis: Choosing Between Class and Struct - Framework Design Guidelines
In diesem Fall zusätzlich eher eingeschränkte Eigenschaften statt Felder. Felder haben einen anderen Anwendungszweck.
public struct Eintrag
{
public string Betreff { get; }
public decimal Betrag { get; }
public EintragTyp Typ{ get; }
public Eintrag(string betreff, decimal betrag, EintragTyp typ)
{
Betreff = betreff;
Betrag = betrag;
Typ = typ;
}
}
Properties - C# Programming Guide
Fields - C# Programming Guide
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code