【发布时间】:2016-08-03 14:39:59
【问题描述】:
我有一个类 Racun.cs
public class Racun
{
private string _nazivKupca;
public string NazivKupca
{
get
{
return _nazivKupca;
}
set
{
_nazivKupca = value;
}
}
private string _djelatnik;
public string Djelatnik
{
get
{
return _djelatnik;
}
set
{
_djelatnik = value;
}
}
public DateTime Datum
{
get
{
return DateTime.Now;
}
}
private string _brojRacuna;
public string BrojRacuna
{
get
{
return _brojRacuna;
}
set
{
_brojRacuna = value;
}
}
private ArrayList _listaStavaka = new ArrayList();
public ArrayList ListaStavaka
{
get { return _listaStavaka; }
}
现在我正试图从我的主程序将对象保存到这个 ArrayList ListaStavaka 中。
class Program
{
static void Main(string[] args)
{
Racun racun = new Racun();
Console.Write("Kupac: ");
racun.NazivKupca = Console.ReadLine();
Console.Write("Djelatnik: ");
racun.Djelatnik = Console.ReadLine();
Console.Write("Broj računa: ");
racun.BrojRacuna = Console.ReadLine();
char unos = 'd';
do
{
Stavka stavka = new Stavka();
Console.Write("Naziv proizvoda: ");
stavka.NazivProizvoda = Console.ReadLine();
Console.Write("Kolicina: ");
stavka.Kolicina = int.Parse(Console.ReadLine());
Console.Write("Jedinicna mjera: ");
stavka.JedinicnaMjera = Console.ReadLine();
Console.Write("Cjena bez pdv-a: ");
stavka.Cijena = double.Parse(Console.ReadLine());
ListaStavaka.Add(stavka);
Console.WriteLine("Zelite li unjeti novu stavku (D/N): ");
unos = Console.ReadKey().KeyChar;
Console.WriteLine("\n");
} while (Char.ToUpper(unos) == 'D');
我收到错误消息
当前上下文中不存在名称“ListaStavaka”。
所以我的问题是当我在另一个类中有ArrayList 时,如何在我的主程序中将对象添加到这个ArrayList 中?我需要在主程序中做什么才能使其工作?
拜托,我搜索了这个问题,大家都建议用List<T>代替,但我真的需要用ArrayList。谢谢。
编辑:
好的,所以我设法解决了这个问题,现在我遇到了另一个问题:
我试过这个:
foreach (var item in racun.ListaStavaka)
{
Console.WriteLine("| {0}.{1}, {2} {3}, {4} kn/{5} = {6} kn", i, item.NazivProizvoda, item.Kolicina, item.JedinicnaMjera, item.Cijena, item.JedinicnaMjera, item.UkupnaCijena());
i++;
ukupno = ukupno + item.UkupnaCijena();
}
但是我在此 WriteLine 行中写入的每个属性都出现错误...“'object' 不包含'NazivProizvoda' 的定义,并且没有扩展方法'NazivProizvoda' 接受'object' 类型的第一个参数可能是找到(您是否缺少 using 指令或程序集引用?)” ...我不明白,因为此属性是对象“Stavka”的属性,我使用“racun.ListaStavaka()”保存到此 ArrayList 中。 . 所以我做错了什么?
【问题讨论】:
-
我编辑了我的代码。你是这个意思吗?
-
好的,谢谢。我现在看看我是否放了racun。进入 ListaStavaka.Add() 以获取 racun.ListaStavaka.Add("test") 它的工作原理。