私は同じオブジェクトから継承する2つのオブジェクトを持っています。 Genericオブジェクトの詳細タイプです。 汎用オブジェクトのリストを保存したいが、エラーが出る。 //Error: Cannot convert value of Type Node to expected argument type Node コード: class Pet {
}
class Cat: Pet {
ジェネリックスが共分散をサポートしていないことを理解していると思います。最初の例が機能せず、無効なキャスト例外が発生します。すべてがコンパイルされます。 しかし、2番目の例はなぜ機能しますか?私はそれが同じものであることだけを見ることができます。 MyClassのは、このようなものです: public interface IGenericClass<T> { }
public class MyC
理由は、多くの場合、このような実施例により例示されています。 public class Fruit
{
}
public class Apple : Fruit
{
}
public class Banana : Fruit
{
}
次が許可されています: public void Permitted()
{
IEnumerable<Fruit> bananas