C# Objekt in einer Liste aussuchen und mit diesem rechnen?


17.10.2022, 13:48

//Edit:

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Ah, lese gerade, sie heißt CoinInCent... (Alte Antwort: Kommt darauf an, wie die entsprechende Property in der Klasse CashValue heißt. Nehmen wir an, sie heißt "AmountInCent")

Dann wäre das

values[0].CoinInCent

Beachte bitte, dass die Konvention in C# ist, Properties mit einem Großbuchstaben zu schreiben.


kl4vd14 
Beitragsersteller
 17.10.2022, 13:46

danke für die schnelle Antwort und ja wohl, die Properties in der Klasse sind groß geschrieben aber der findets trotzdem nicht, obwohl ich die Klasse aufrufe... mach ich da was falsch? :/ hab n Screenshot reingepackt

0
ohwehohach  17.10.2022, 13:54
@kl4vd14

Naja, die Fehlermeldung sagt's doch schon. Die Liste in in der Methode nicht bekannt. Die Variable values muss halt schon auch im Scope sein.

0
kl4vd14 
Beitragsersteller
 17.10.2022, 14:06
@ohwehohach

das stellt auch mein Problem dar, sorry... fange gerade mit Programmieren an und weiß überhaupt nicht wie ich die Variable aus einer anderen Klasse und dazu noch als Liste in der Main sichtbar mache

0
ohwehohach  17.10.2022, 14:19
@kl4vd14

Naja, über Properties. Wenn es eine Instanzvariable innerhalb der Klasse ist, brauchst Du halt aber auch einfach Zugriff auf die Instanzvariable.

Die Main-Methode ist statisch und kann daher nicht auf Instanzvariablen zugreifen - am Sinnvollsten machst Du erstmal eine Objektinstanz.

public class Program
{
  public static int Main(string[] args)
  {
    Program instance = new Program();
    instance.DoWhatIWantToDo();
  }

  private void DoWhatIWantToDo()
  {
    ...
  }
}

Wenn also jetzt Deine Klasse eine Instanzvariable hat, die values heißt, ist alles geritzt.

public class Program
{
  private List<CashValue> values;

  public static int Main(string[] args)
  {
    Program instance = new Program();
    instance.DoWhatIWantToDo();
  }

  private void DoWhatIWantToDo()
  {
    values = new List<CashValue>();
    values.Add(new CashValue("2 Euro", 200, "[F5]"));
    values.Add(new CashValue("1 Euro", 100, "[F6]"));
    values.Add(new CashValue("50 Cent", 50, "[F7]"));

    // Mache jetzt was mit values[0].CoinInCent...
  }
}
1
kl4vd14 
Beitragsersteller
 19.10.2022, 17:39
@ohwehohach

wie ist es wenn die Methode sich in einer anderen Klasse befindet und ich es in der Main aufrufen möchte? was ist die beste Lösung dafür?

0
ohwehohach  19.10.2022, 22:03
@kl4vd14

Dasselbe wie oben in meinem Code, nur halt mit der anderen Klasse.

0