我正在使用 C#.NET 3.5。我明白了
参数类型“GenericTest.BarkStrategy”不可分配给参数类型“GenericsTest.IAnimalStrategy”
使用以下(对于这个问题尽可能简化)代码:
using System.Collections.Generic;
namespace GenericsTest {
class Program {
static void Main(string[] args) {
List<IAnimalStrategy<IAnimal>> strategies =
new List<IAnimalStrategy<IAnimal>>();
strategies.Add(new BarkStrategy());
}
}
interface IAnimal { }
interface IAnimalStrategy<T> where T : IAnimal { }
class Dog : IAnimal { }
class BarkStrategy : IAnimalStrategy<Dog> { }
}