IHerdを実装するすべてのAnimalオブジェクトを返そうとしています。インターフェイスを実装するGeneric Listオブジェクトをすべて返す
誰かが私を方向に向けることができますか?
public interface IHerd {
void Herd();
}
public class Dog : Animals, IHerd {
public void Herd() {
// Swim method
}
}
public class Animals {
public void Eat() { }
public void Poop() { }
}
public class Farm {
public List<Animals> FarmAnimals = new List<Animals>();
public Animals GetHerders() {
return FarmAnimals.OfType<IHerd>();
}
}
に一致するように、あなたの戻り値の型を変更する必要があります。 – Gabe
'IHerd'と' Animals'は同じクラスに実装されている場合にのみ関連しているので、 'List 'を 'List'として暗黙的に扱うことはできません動物から派生したクラスではありません。 IHerdの代わりに、派生クラスHerdAnimalが実装されている場合、Framework v4.0を使用している場合、キャストを避けることができます。これにより、Listsが共変します。 –
KeithS