C# Objekt in einer Liste aussuchen und mit diesem rechnen?
servus,
ich beschäftige mich gerade mit der objektorientierten Programmierung und frage mich wie ich einen fest definierten Objekt aus einer Liste raus suchen und diesen weiter für Berechnungen nutzen kann.
ich habe die Liste mit den jeweiligen Werten in einer Klasse erstellt:
values.Add(new CashValue("2 Euro", 200, "[F5]"));
values.Add(new CashValue("1 Euro", 100, "[F6]"));
values.Add(new CashValue("50 Cent", 50, "[F7]"));
und möchte den zweiten Wert => int coinInCent im Konstruktor (also z.B. die 200 Cent von den 2€ ) mit der User Eingabe addieren. Wie rufe ich die 200 Cent auf?
//Edit:
1 Antwort
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.
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.
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
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...
}
}
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?
Dasselbe wie oben in meinem Code, nur halt mit der anderen Klasse.
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