Не удается добавить товар в категорию

Вы могли бы сделать несколько вещей. Например, элементы списка относятся к Animal

. Использование вашего кода:

cat.Play(new List<Cat>().Cast<Animal>().ToList());

Другим является создание Animal общего, поэтому cat.Play(new List<Cat>()); будет работать.

class Animal<T>
{
    public virtual void Play(List<T> animals) { }
}
class Cat : Animal<Cat>
{
    public override void Play(List<Cat> cats)
    {
    }
}

class Program
{
    static void Main(string[] args)
    {
        Cat cat = new Cat();
        cat.Play(new List<Cat>());
    }
}

Другим способом является не создание Animal общего, а метода Play и ограничение этого на T : Animal

class Animal
{
    public virtual void Play<T>(List<T> animals) where T : Animal { }
}
class Cat : Animal
{
    public override void Play<T>(List<T> animals) 
    {
    }
}

Наконец, если вы находитесь на C # 4 и вам нужно только перечислить список и не изменять его, проверьте ответ Эрика Липперта на IEnumerable<Animal>.

-1
задан user2404515 18 January 2019 в 11:26
поделиться

1 ответ

попробуйте изменить URL вашего продукта, сделать его другим

0
ответ дан Ashish Ramchandani 18 January 2019 в 11:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: