public object Clone() { var boardMove = new BoardMove(From, To, MoveType); boardMove.ExtraData = ExtraData; return(boardMove); }
protected bool Equals(BoardMove other) { return(Equals(From, other.From) && Equals(To, other.To) && MoveType.Equals(other.MoveType) // && ( // MoveType != MoveType.PawnPromotion // || Equals(ExtraData, other.ExtraData) // ) ); }