相关疑难解决方法(0)

C#泛型继承问题

我想将从泛型中派生的不同类型的对象添加到基类型列表中.我得到这个编译错误

Error   2   Argument 1: cannot convert from 'ConsoleApplication1.Stable' to 'ConsoleApplication1.ShelterBase<ConsoleApplication1.AnimalBase>'   C:\Users\ysn\Desktop\ConsoleApplication1\ConsoleApplication1\Program.cs 43  26  ConsoleApplication1
Run Code Online (Sandbox Code Playgroud)

我看不出问题你能为我提供另一种做这种事情的方法吗?

abstract class AnimalBase { public int SomeCommonProperty;}

abstract class ShelterBase<T> where T : AnimalBase
{
    public abstract List<T> GetAnimals();
    public abstract void FeedAnimals(List<T> animals);
}


class Horse : AnimalBase { }

class Stable : ShelterBase<Horse>
{
    public override List<Horse> GetAnimals()
    {
        return new List<Horse>();
    }

    public override void FeedAnimals(List<Horse> animals)
    {
        // feed them
    }
}


class Duck : AnimalBase { }

class HenHouse …
Run Code Online (Sandbox Code Playgroud)

c# generics inheritance compiler-errors

12
推荐指数
1
解决办法
3810
查看次数

标签 统计

c# ×1

compiler-errors ×1

generics ×1

inheritance ×1