Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用另一个类中的ArrayList_C#_Object_Arraylist_Add - Fatal编程技术网

C#使用另一个类中的ArrayList

C#使用另一个类中的ArrayList,c#,object,arraylist,add,C#,Object,Arraylist,Add,我有一节课是Racun.cs public class Racun { private string _nazivKupca; public string NazivKupca { get { return _nazivKupca; } set { _nazivKupca = value; } } private

我有一节课是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
,但我确实需要使用
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'的定义,并且找不到接受'object'类型的第一个参数的扩展方法'NazivProizvoda'(是否缺少using指令或程序集引用?)”。。。我不明白,因为这些属性是我用“racun.ListaStavaka()”保存到这个ArrayList中的对象“Stavka”的属性。。。那么我做错了什么呢?

我不知道您的实际
ListaStavaka
是在哪里声明的

您的代码将其实例演示为
Racun
类的属性之一,因此,如果您有该类的实例,您应该能够按预期访问它:

// Create an instance of your Racun object so that you can access it's properties
var racun = new Racun();
// After instantiating an object, you can access its public properties 
// as expected
racun.ListStavaka.Add("test");
如果没有对象,则需要创建一个实例,并简单地调用它
ListaStavaka
,以使用它:

// Create an ArrayList on it's own
var ListaStavaka = new ArrayList();
// Add to the array list
ListaStavaka.Add("test");
关于问题第二部分的更新

当显示ArrayList中的元素时,这些元素是
Stavka
对象,您可能希望在循环中指出这些元素,以便.NET知道它们是什么(否则它假定它们是泛型
object
类型):


我编辑了我的代码。这就是你的意思吗?是的,谢谢。我现在明白了,如果我把拉昆放进去。进入ListaStavaka.Add()以获取racun.ListaStavaka.Add(“测试”)它可以工作。谢谢,这对我来说很有效,但现在我有另一个问题:(我编辑了原始问题,你可以在问题底部看到我的问题。
foreach (Stavka item in racun.ListaStavaka)
{
     // Access your properties using item.NazivProizvoda, etc. here
}