salut salut coq,
alors voila j'ai une classe Card qui contient quelques properties et des enumerations que voici :
using System;
namespace DeckOfCards
{
//Enum
public enum Suit
{
Hearts,
Diamonds,
Spades,
Clubs
}
public enum FaceValue
{
Ace, Two, Three, Four, Five, Six, Seven,
Eight, Nine, Ten, Jack, Queen, King
}
///
/// Description résumée de Card.
///
public class Card
{
public Card()
{
}
///
///
///
///
///
public Card(Suit newSuit, FaceValue newValue)
{
m_Suit= newSuit;
m_FaceValue = newValue;
}
private Suit m_Suit;
public Suit Suit
{
get{ return m_Suit; }
set { m_Suit = value; }
}
private FaceValue m_FaceValue;
public FaceValue FaceValue
{
get{ return m_FaceValue; }
set{ m_FaceValue = value; }
}
}
}
et une autre classe Hands auquel j'instancie mon objet card pour faire quelques tests sur le code que j'ai deja fait :-) !
J'instancie donc deux objets card avec des constructeurs differents.
J'ajoute les cartes a l'array list et ensuite j'essayes de faire une methode contains qui verifie si cette carte existe ou pas !
Et dans cette methode j'ai une boucle for sur l'array list
for( int i = 0; i< m_Cards.Count; i++ )
{
//plante sur cette ligne
aCard = (Card)m_Cards[i];
je transforme mon objet en objet card et c'est la que j'obtiens ce message d'erreur invalid cast execption !
Si tu as une idée merci pour tout !
using System;
using System.Collections;
namespace DeckOfCards
{
///
/// Description résumée de Hand.
///
public class Hand
{
private ArrayList m_Cards = new ArrayList();
//Test
public static void Main()
{
Card queenOfHeards = new Card(Suit.Hearts, FaceValue.Queen);
Card twoOfClub = new Card(Suit.Clubs, FaceValue.Two);
//Test addcard
Hand aHand = new Hand( new Card[] { queenOfHeards, twoOfClub} );
//Test contains card
Console.WriteLine("Hands contains queenOfHeards {0}",aHand.Contains(queenOfHeards));
//Test contains
Console.WriteLine("Hands contains queen of heards {0}", aHand.Contains(Suit.Hearts, FaceValue.Queen));
}
public Hand()
{
// TODO : ajoutez ici la logique du constructeur
}
public Hand(Card[] cards)
{
m_Cards.Add(cards);
}
///
///
///
///
Object
public void Add(Card newCard)
{
m_Cards.Add( newCard );
}
public bool Contains(Card carToFind)
{
return m_Cards.Contains(carToFind);
}
/******************* PLANTE SUR CETTE METHODE ***************************/
///
///
///
///
///
///
public bool Contains(Suit suitToFind, FaceValue valueToFind)
{
bool found= false;
Card aCard;
for( int i = 0; i< m_Cards.Count; i++ )
{
//plante sur cette ligne
aCard = (Card)m_Cards[i];
if(( aCard.Suit == suitToFind ) && ( aCard.FaceValue == valueToFind ))
{
found = true;
}
}
return found;
}
public Card this[int indexer]
{
get{ return (Card)m_Cards[indexer]; }
}
}
}
Merci pour tes idées
Christophe