スタックオーバーフロー例外が発生する理由を見つけようとしています。学校の課題用に単純なカード ゲームを作成しています。カードを複製して返すと、スタック オーバーフローの例外が発生します。
だから私はこのカードクラスを手に入れました:
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' 型の未処理の例外が発生しました