Tôi có một chương trình mẫu với lớp cơ sở Fruit
và lớp học có nguồn gốc Apple
.Làm thế nào để thêm một đại biểu táo vào một danh sách các đại biểu hoa quả?
class Testy
{
public delegate void FruitDelegate<T>(T o) where T : Fruit;
private List<FruitDelegate<Fruit>> fruits = new List<FruitDelegate<Fruit>>();
public void Test()
{
FruitDelegate<Apple> f = new FruitDelegate<Apple>(EatFruit);
fruits.Add(f); // Error on this line
}
public void EatFruit(Fruit apple) { }
}
Tôi muốn có danh sách các đại biểu hoa quả và có thể thêm đại biểu của nhiều trái cây có nguồn gốc vào danh sách. Tôi tin rằng điều này có liên quan đến hiệp ước hiệp phương hoặc đối nghịch nhưng tôi không thể hình dung ra điều đó.
Thông điệp lỗi là (không gian tên):
The best overloaded method match for 'List<FruitDelegate<Fruit>>.Add(FruitDelegate<Fruit>)' has some invalid arguments`