Как мне сохранить значения типа объекта в массиве и вызвать их (C#)? - PullRequest
1 голос
/ 08 мая 2020

У меня следующий класс:

public class Object
    {
        public string Name { get; set; }
        public int Price { get; set; }
    }

Я создаю новый массив объекта: Object[] Object= new Object[1];

Я присваиваю ему значение, Object [0] = new Object () {Name = "T", Price = 32};

Но затем, когда я пытаюсь распечатать значения, используя foreach следующим образом:

foreach(var a in Object) 
Console.WriteLine(a);

я получаю Namespace.Object ;

Как я могу это исправить и получить фактические значения Name и Price для каждой строки и сохранить их несколько значений?

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Console.WriteLine() попытается преобразовать a в строку, в свою очередь вызывая a.ToString().

Вы можете переопределить ToString() метод при необходимости:

public class Object
{
    public string Name { get; set; }
    public int Price { get; set; }

    public override string ToString()
    {
        return $"[Name: {Name}, Price: {Price}]";
    }
}
0 голосов
/ 08 мая 2020

Вместо экземпляра печати переопределите метод .ToString() в классе Object и при печати преобразуйте ваш объект в string.

//First of all, give meaningful name
public class Product
{
   public string Name { get; set; }
   public int Price { get; set; }

    public override string ToString()
    {
        return $"Price of product {this.Name} is {this.Price}";
    }
}

Теперь просто перебирайте каждый продукт . Console.WriteLine() будет внутренне вызывать ToString(), который вы переопределили в Product class

 //Here Products is array of Product object
 foreach(var product in Products) 
    Console.WriteLine(product);
...