鑄造的接口的對象我有一個包含很多不同的方法,幾個對象:在C#
public class Dog: AnimalDescription, IAnimal
public class Cat: AnimalDescription, IAnimal
我想把狗和貓的list
成組合列表。從那裏我想創建一個幻燈片並分別播放每個項目。所以我做了一個接口:
public Interface IAnimal
public playAnimal()
我有一個catItem
,並且擴展了該接口dogItem
。
我的問題就出在這裏,我不能合併列表。每次我這樣做都說我沒有正確輸出:
我想將它添加到AnimalInterface列表中,並根據類的類型,通過每個catItem或dogItem方法(playAnimal)。我有一個創建爲動物幻燈片類: 但下面不工作:
public class AnimalSlideshow
IEnumerable<IAnimal> AnimalItemList;
setUpSlideshow(list<Dogs> newDogData){
var dogList = newDogData.Where(dog => anyDog.anySpecies().toList());
//The dogList is a type List<Dog>.
AnimalItemList = dogList.Cast<IAnimal>();
}
它說我不能投了狗輸入IAnimal。我很困惑,因爲我將接口添加到Dog類。我剛剛開始學習C#。有沒有我不明白的理解?
'Cast'不返回一個列表。它返回一個'IEnumerable',然後嘗試添加一個'ToList'。 – juharr
狗和貓都不是'AnimalItem'。你不應該將它們投射到「IAnimal」嗎? –
@jdmdevdotnet是一個*列表*的動物。你輸入的內容會丟失。 –