По поводу конструктора. Если вы хотите l oop через параметр авторов и добавить каждую запись в личный список _authors, просто удалите _authors = authors;
и l oop до authors
, а не _authors
.
Например:
public Book(string id, double price, Category category, List<string> authors, string title, int yearPublished) : base(id, price, category)
{
_authors = new List<string>();
foreach (string a in authors)
{
_authors.Add(a);
}
_title = title;
_yearPublished = yearPublished;
}
Кроме того, метод View()
не возвращает строку, которую вы ожидаете получить.
Он просто использует метод ToString()
, полученный из object
класса.
Так что вам нужно явно l oop - _authors
перечислите и сначала создайте строку:
public override string View()
{
string authorString = "";
foreach(var a in _authors)
{
authorString += $"{a} ";
}
return "Author:" + authorString + "\nTitle:" + _title + "\nYear Published:" + _yearPublished;
}
или создайте свой собственный класс Authors
с помощью ToString()
, реализованным по-вашему.