Я хочу передать список объектов конструктору NavigationPage, чтобы я мог заполнить содержимое ListView на этой странице.C# как передать список объектов конструктору?
объекты будут разными типами, которые все наследуемые от того же родителя, который является абстрактным класс называется «Animal» определяется следующим образом:
abstract class Animal { ...
унаследованных классов, как это:
public class Horse : Animal { ...
public class Cow : Animal { ...
public class Dog : Animal { ...
страница, которая отображает этот список является класс наследуется от NavigationPage следующим образом:
public List<Animal> Animals = new List<Animal>();
public AnimalListPage(string title, List<Animal> animals) {
....
и я создаю объект AnimalListPage следующим образом:
var horses = new List<Horse>() {
new Horse("Silver", 65, 70),
new Horse("Tucker", 60, 68)
};
horsesListPage = new AnimalListPage("Horses", horses);
....
EDIT: в ответ на некоторые из предложений; Чтобы уточнить: мне нужно сохранить тип объекта «Лошадь», «Корова», «Собака» и т. Д. В списке, потому что каждый тип Animal имеет уникальные атрибуты для отображения. Кроме того, каждый экземпляр списка животных будет иметь только один тип, т. Е. Никогда не будет списка, объединяющего Лошадей, Коровы и Собаки.
Но я получаю ошибку:
Error CS1503 Argument 2: cannot convert from System.Collections.Generic.List<AnimalTracker.Horse> to System.Collections.Generic.List<AnimalTracker.Animal>
Должен ли я "слепок" "Лошадь" Список к типу "Animal" каким-то образом? Или сделать конструктор «AnimalListPage()» менее специфичным для конкретного типа? Как мне это сделать?
Примечание: Я разрабатываю с использованием Xamarin (хотя я не думаю, что это относится к этой проблеме).
вар лошади = новый Список() {... –
AndyJ
Просто используйте 'Var лошадей = новый список()' –
Lithium