Chapter 11 Deep copy Card Class,page 301
public class Card : CollectionBase,ICloneable
{
public object clone()
{
Card newcard = new Card();
foreach (Card sourcecard in List)
{
newcard.addcard(sourcecard.clone() as Card);
}
return newcard;
}
public readonly Suit suit;
public readonly Rank rank;
public void addcard(Card newcard)
{
List.Add(newcard);
}
public void removecard(Card oldcard)
{
List.Remove(oldcard);
}
public Card()
{
}
public Card this[int cardindex]
{
get
{
return (Card)List[cardindex];
}
set
{
List[cardindex] = value;
}
}
public void copyto(Card targetcard)
{
for (int index = 0; index < this.Count; index++)
{
targetcard[index] = this[index];
}
}
public bool contains(Card card)
{
return InnerList.Contains(card);
}
public Card(Suit newsuit, Rank newrank)
{
suit = newsuit;
rank = newrank;
}
}
}
Ch10CardLib.cs.Cards does not implement interface member 'System.ICloneable.Clone()
|