如何在每个元素 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
。通过我的这些更改和我的回答,您的代码应该 运行 正确。
我在打印对象数组时遇到问题。当我打印出对象时,每个对象中设置的值不会被打印出来。我只设法打印出“姓名:个人号码:地区:销售:”但没有他们的价值。我该如何解决这个问题?我也尝试过重写 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
。通过我的这些更改和我的回答,您的代码应该 运行 正确。