我试图找出为什么会出现堆栈溢出异常。我正在为学校作业创建一个简单的纸牌游戏,当我克隆卡片以返回它们时,我得到了堆栈溢出异常。
所以我得到了这个卡片类:
public class Card : ICloneable
{
....
#region ICloneable Members
public object Clone()
{
return this.Clone(); // <--- here is the error thrown when the first card is to be cloned
}
#endregion
}
我有一个名为的类Hand
,然后克隆卡片:
internal class Hand
{
internal List<Card> GetCards()
{
return m_Cards.CloneList<Card>(); // m_Cards is a List with card objects
}
}
最后,我得到了一个扩展方法List
:
public static List<T> CloneList<T>(this List<T> listToClone) where T : ICloneable
{
return listToClone.Select(item => (T)item.Clone()).ToList();
}
错误被抛出卡类(IClonable 方法),
CardLibrary.dll 中出现“System.StackOverflowException”类型的未处理异常