我不确定我是否恰当地提出了我的问题,但请考虑以下情况:
我有一个名为Card
的抽象类。 Card
类包含许多成员。我有两个派生自Card
BlueCard
和RedCard
的课程。想象一下:
public abstract class Card{
//many members
}
public class BlueCard : Card{
//many members
}
public class RedCard : Card{
//many members
}
现在,假设我有一个班级Deck
。 Deck
需要包含BlueCard
和RedCard
的单个数组。有办法解决这个问题吗?
答案 0 :(得分:0)
我自己也在类似的情况下使用这种方法,其中ElementGroup对象包含一个对象集合,这些对象可以是Element类型,也可以是从Element派生的类型。我觉得这样的事情应该适合你的情况:
public class Deck {
public Deck() {
_cardArray = new Card[52];
}
private Card[] _cardArray;
public void DrawCard(int cardNumber) {
var card = _cardArray[cardNumber];
if (card.GetType() == typeof(Card)) {
// Do something
}
else if (card.GetType() == typeof(BlueCard)) {
// Do something
}
else if (card.GetType() == typeof(RedCard)) {
// Do something
}
}
}