如何在每个元素 C# 中打印出具有一组值的对象数组

How do I print out Array of objects with a set of values in each element C#

我在打印对象数组时遇到问题。当我打印出对象时,每个对象中设置的值不会被打印出来。我只设法打印出“姓名:个人号码:地区:销售:”但没有他们的价值。我该如何解决这个问题?我也尝试过重写 ToString 但我在那里得到了相同的结果。

        public static void Main(String[] args)
        {

            Seller[] sellerArray = new Seller[amount];

            for (int i = 0; i < amount; i++)
            {
                sellerArray[i] = new Seller();
                sellerArray[i].setInformation();
            }

            for (int i = 0; i < sellerArray.Length; i++)
            {
                sellerArray[i].printSellers();
            }
        }

    class seller
    { 

    public String Name { get; set; }

    public String PersonalNumber { get; set; }

    public String District { get; set; }

    public String Sales { get; set; }

    public void setInformation()
    {

        Seller seller = new Seller();
        Console.WriteLine("Enter Name");
        seller.Name = Console.ReadLine();

        Console.WriteLine("Personal number");
        seller.PersonalNumber = Console.ReadLine();

        Console.WriteLine("District");
        seller.District = Console.ReadLine();

        Console.WriteLine("Sales");
        seller.Sales = Console.ReadLine();
        Convert.ToInt32(seller.sales);
        
        Console.WriteLine();
    }

    public void printSellers()
    {
        Console.WriteLine("Name: " + this.Name);
        Console.WriteLine("Personal number: " + this.PersonalNumber);
        Console.WriteLine("District: " + this.District);
        Console.WriteLine("Sales: " + this.Sales);
        Console.WriteLine();
    }
    }

这是因为在您的 setInformation() 方法中,您正在创建一个新的 Seller 并设置它的值。当您获得每个 属性 值时,您希望将其存储到 this。例如:

public void setInformation()
{
    Console.WriteLine("Enter Name");
    this.Name = Console.ReadLine();
    ...
}

您还可以将 setInformation() 方法移到 class 之外,并使其 return 成为新创建的 Seller。例如:

public static Seller SetInformation()
{
    Seller seller = new Seller();
    Console.WriteLine("Enter Name");
    seller.Name = Console.ReadLine();

    Console.WriteLine("Personal number");
    seller.PersonalNumber = Console.ReadLine();

    Console.WriteLine("District");
    seller.District = Console.ReadLine();

    Console.WriteLine("Sales");
    seller.Sales = Console.ReadLine();
    
    Console.WriteLine();
    
    return seller;
}

编辑

您提供的代码中似乎还有其他一些问题。

首先,你的大小写不一致。 Seller class 没有大写(应该是),但在某些地方您使用大写版本。

接下来,不需要行 Convert.ToInt32(seller.sales); 并且会失败,因为 属性 名称应该大写。

变量 amount 被引用但未在任何地方设置。

总结一下:将 class 名称更改为 Seller,这是应该的。删除不必要的行,并在某处定义 amount 。通过我的这些更改和我的回答,您的代码应该 运行 正确。