Mám za domácí úkol vytvořit obchod, který bude data ukládat do Seznamu (ArrayListu) a z něho také zobrazovat. Ale vždy to uloži do seznamu pouze poslední hodnoty a ty minulé se přepíšou.
Dle mého za to může řádek:
obchod = new Obchod(textBox1.Text, textBox2.Text, Convert.ToDouble(textBox3.Text), Convert.ToInt32(textBox4.Text));
Když ho ale zakomentuji tak se mě zobrazí chybová hláška:
is never assigned to, and will always have its default value null
Už se s tím mořím tři dny a přestává mě to bavit. Díky moc všem dopředu za pomoc
Cely program zde:
Obchod obchod;
private void button1_Click(object sender, EventArgs e)
{
obchod = new Obchod(textBox1.Text, textBox2.Text, Convert.ToDouble(textBox3.Text), Convert.ToInt32(textBox4.Text));
obchod.pridejZboziNaSklad(textBox1.Text, textBox2.Text, Convert.ToDouble(textBox3.Text), Convert.ToInt32(textBox4.Text));
}
private void button2_Click(object sender, EventArgs e)
{
richTextBox1.Text = "";
richTextBox1.Text += "" + obchod.vypisSklad();
}
}
class Zbozi
{
private string nazev, popis;
private int mnozstvi;
private double cena;
public Zbozi(string nazev, string popis, double cena, int mnozstvi)
{
this.nazev = nazev;
this.popis = popis;
this.cena = cena;
this.mnozstvi = mnozstvi;
}
public string vypisInfo(string nazev, string popis, double cena, int mnozstvi)
{
return string.Format(" Název produktu: {0} \n Popis Produktu: {1}\n Cena produktu: {2} Kč\n Množství produktu: {3} ks\n\n", nazev, popis, cena, mnozstvi);
}
}
class Obchod
{
Zbozi zbozi;
List<Zbozi> sklad = new List<Zbozi>();
private string nazev, popis;
private int mnozstvi, id;
private double cena;//, castkaZProdeje;
//Konstruktor pro pridani zbozi na sklad
public Obchod(string nazev, string popis, double cena, int mnozstvi)
{
this.nazev = nazev;
this.popis = popis;
this.cena = cena;
this.mnozstvi = mnozstvi;
MessageBox.Show(" Produkt byl úspěšně přidán do databáze");
}
//Prida zbozi na sklad
public void pridejZboziNaSklad(string nazev, string popis, double cena, int mnozstvi)
{
sklad.Add(zbozi = new Zbozi(nazev, popis, cena, mnozstvi));
}
//Vypise na obrazovku sklad
string vystup;
public string vypisSklad()
{
foreach (Zbozi go in sklad)
{
vystup = string.Format("" + go.vypisInfo(nazev, popis, cena, mnozstvi));
}
return vystup;
}
}