我有三个拥有相同父类的类。我们称之为Animal,其子类是Dog、Cat和Parrot。
我有一个可观察集合,其中包含用户正在使用的动物集合。集合包含所有相同类型的动物 - 用户只能使用所有狗、所有猫或所有鹦鹉中的一种。
所以我声明了ObservableCollection animals,并根据用户选择更改属性animals的内容为ObservableCollection或ObservableCollection或ObservableCollection。因此,无论用户当前使用狗还是猫,他都可以选择动物具有的所有共同操作。
但它不起作用。似乎我不能将ObservableCollection分配给类型为ObservableCollection的属性。我认为应该可以,因为动物是猫的超类型,所以我可以像往常一样将猫分配给动物变量。
为什么我不能这样做,如何解决这个问题呢?
我有一个可观察集合,其中包含用户正在使用的动物集合。集合包含所有相同类型的动物 - 用户只能使用所有狗、所有猫或所有鹦鹉中的一种。
所以我声明了ObservableCollection animals,并根据用户选择更改属性animals的内容为ObservableCollection或ObservableCollection或ObservableCollection。因此,无论用户当前使用狗还是猫,他都可以选择动物具有的所有共同操作。
但它不起作用。似乎我不能将ObservableCollection分配给类型为ObservableCollection的属性。我认为应该可以,因为动物是猫的超类型,所以我可以像往常一样将猫分配给动物变量。
为什么我不能这样做,如何解决这个问题呢?
IEnumerable<out T>
,但不包括类本身。 - Marc Gravell