Tôi có hai lớp: một lớp cơ sở (Động vật) và một lớp bắt nguồn từ nó (Cat). Lớp lớp chứa một phương thức ảo đầu vào parameter.Something như thế nàyDanh sách đúc <> của lớp bắt nguồn vào Danh sách <> của lớp cơ sở
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication9
{
class Animal
{
public virtual void Play(List<Animal> animal) { }
}
class Cat : Animal
{
public override void Play(List<Animal> animal)
{
}
}
class Program
{
static void Main(string[] args)
{
Cat cat = new Cat();
cat.Play(new List<Cat>());
}
}
}
Khi tôi biên dịch chương trình trên, tôi nhận được lỗi sau
Error 2 Argument 1: cannot convert from 'System.Collections.Generic.List' to 'System.Collections.Generic.List'
Liệu có cách nào để thực hiện điều này?
thể trùng lặp của [Đúc một bộ sưu tập tổng quát để loại cơ sở] (http: //stackoverflow.com/questions/539287/casting-a-generic-collection-to-base-type) – finnw
Điều đầu tiên cần làm là thay đổi đối số List <> thành đối số IEnumerable <>. –
có thể trùng lặp của [Danh sách chuyển đổi <> của các đối tượng lớp dẫn xuất thành Danh sách <> của các đối tượng lớp cơ sở] (http://stackoverflow.com/questions/1817300/convert-list-of-derived-class-objects-to-list -of-base-class-objects) –