[C#] Klassen Frage

04/12/2014 17:01 Assault IX#1
Tag,

Ich hab eine Frage zu Klassen, ich hab eine Klasse für ein kleines Minispiel das für das kaufen der Items zuständig sein soll.

Das ganze soll dann so aussehen beim Buy Button.

Code:
        private void btnItem1_Click(object sender, EventArgs e)
        {
            buyItem.BuyItem1.[B]Price [/B]= 10; 
            buyItem.BuyItem1(); // Kauft den Gegenstand 
        }
Habe das ganze bisher so gemacht (Funktioniert nicht so ganz)

Code:
    class buyItem
    {
        private int _Item1Price;

        public void BuyItem1()
        {
            // AktuellesGeld - _Item1Price; 
            // Item1 += 1; 
        }

        public int getItem1Price
        {
            get { return _Item1Price; }
            set { _Item1Price = value; }
        }
    }
Das "Problem" ist dabei diese Klasse wird mehrere Items "anbieten", und im Button Code kommt dann bei Eingabe von "buyItem. " direkt " getItem1Price als Vorschlag. Würde aber wie im Beispiel gerne buyItem.BuyItem1.Price = 10; zB haben. Also unter BuyItem1 untergeordnet.

Hoffe es ist verständlich .-. Danke im vorraus.
04/12/2014 17:33 Requi#2
Auf Instanzen legen.
04/12/2014 17:39 theredvex#3
Du erstellst eine Hauptklasse :
"BuyItem" dort machst du alle variablen die du brauchst zbsp.
public String name
public Int32 price

Am Anfang deines Programms erstellt du das buyitem1 mit
"BuyItem item1 = new BuyItem(NAME, PREIS)"
dann beim button nimmt du dann item1.price

Hoffe es ist soweit lesbar hab vom Handy geschrieben werde es dir gleich wenn ich zuhause bin zur not zurecht rücken

Edit:
Quote:
public class BuyItem
{
public String name;
public Int32 price;

public BuyItem(String inputName, Int32 inputPrice)
{
this.name = inputName;
this.price = inputPrice;
}
}

public class StartDesProgramms
{
public void Main()
{
BuyItem item1 = new BuyItem("Fisch", "10");
BuyItem item2 = new BuyItem("Fleisch", "25");
}
}
04/12/2014 18:20 Mostey#4
Du weißt offensichtlich nicht was Klassen sind, wofür sie existieren und wie man sie nutzt.

[Only registered and activated users can see links. Click Here To Register...] solltest du dir mal durchlesen, dann weißt du auch, das dein Code so nicht funktionieren kann.

Außerdem ist mir schleierhaft was dieses "[B]" und "[/B] = 10" bedeuten soll.
04/12/2014 19:31 Assault IX#5
Quote:
Originally Posted by Mostey View Post
Du weißt offensichtlich nicht was Klassen sind, wofür sie existieren und wie man sie nutzt.

[Only registered and activated users can see links. Click Here To Register...] solltest du dir mal durchlesen, dann weißt du auch, das dein Code so nicht funktionieren kann.

Außerdem ist mir schleierhaft was dieses "[B]" und "[/B] = 10" bedeuten soll.
War eigl. ne Formatierung die in [Code] nicht funktioniert.

Hab außerdem eine Alternativ Lösung gefunden "Verschachtelte Klassen" nennt sich das. :)
04/12/2014 19:53 Mostey#6
Quote:
Originally Posted by Assault IX View Post
Hab außerdem eine Alternativ Lösung gefunden "Verschachtelte Klassen" nennt sich das. :)
Und warum arbeitest du nicht mit Instanzen sondern haust für jedes Item eine eigene Klassendefinierung raus? Das bricht so ziemlich alle Grundsätze der Objektorientierung.
04/12/2014 21:47 Assault IX#7
Quote:
Originally Posted by Mostey View Post
Und warum arbeitest du nicht mit Instanzen sondern haust für jedes Item eine eigene Klassendefinierung raus? Das bricht so ziemlich alle Grundsätze der Objektorientierung.
Dann belehr mich eines besseren wie man es machen kann mit Instanzen.
04/12/2014 22:56 Mostey#8
Quote:
Originally Posted by Assault IX View Post
Dann belehr mich eines besseren wie man es machen kann mit Instanzen.
Les' dir den Artikel durch, den ich dir im vorherigen Post verlinkt habe. Da wird alles erklärt.
04/12/2014 23:59 .Marcel'#9
Quote:
Originally Posted by Assault IX View Post
Dann belehr mich eines besseren wie man es machen kann mit Instanzen.
Am besten mal durchlesen was der sinn und zweck der OOP ist, und wie man sie richtig verwendet.. das Galileo openbook ist dafür perfekt geeignet