IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C# 2.0] Comment utiliser une classe en temps que tableau ?


Sujet :

C#

  1. #1
    Membre éclairé Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Par défaut [C# 2.0] Comment utiliser une classe en temps que tableau ?
    Bonjour,

    J'ai commencé une classe et j'aurais aimé l'utilisé en tableau mais le compilateur me sort une erreur :

    Impossible de convertir implicitement le type 'Ogame___Simulateur_Bataille.Vaisseau' en 'Ogame___Simulateur_Bataille.Vaisseau[]'
    Voici comment j'ai essayé de créer mon tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class Attaquant
    {
        Vaisseau[] temp = new Vaisseau();
    }
    et maintenant voici un morceau de ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class Vaisseau
        {
            #region Variable privée
            private TypeVaisseau tvType;
            private int iCoque;
            private float fBouclier;
            private float fAttaque;
            private int iStockage;
            private int iVitesse;
            private int iConsommation;
            #endregion
     
            public void Vaissea(TypeVaisseau tvTemp)
            {
                tvType = tvTemp;
                switch (tvTemp)
                {
                    // Le code est beaucoup trop long et je ne pense pas qu'il
                    // intervienne dans mon problème
                }
            }
    Donc je me demande si on peut faire un tableau avec une classe ou es-ce qu'il est possible de réaliser une structure contenant des méthodes qui ne sont pas que des constructeur ?

    Merci d'avance

    [EDIT]
    J'ai remplacé le mot class par struct dans mon code et j'obtiens la même erreur donc sa ne dépend pas du type classe ou structure mais là je vois pas comment faire
    [/EDIT]

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Citation Envoyé par dorian833
    Donc je me demande si on peut faire un tableau avec une classe
    Vu le code je suppose que la question serait plutôt, est-il possible de faire un tableau de classe ? La réponse est oui, c'est juste que tu t'y prends mal et que visiblement il te manque des bases. Si on reprend ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    class Attaquant
    {
        Vaisseau[] temp = new Vaisseau();
    }
    Tu déclares un tableau de Vaisseau et tu y assignes un nouvel objet de type Vaisseau, mais on ne peut pas affecter directement le tableau comme tu le fais. Les types Vaisseau[] et Vaisseau sont incompatibles, d'où l'erreur à la compilation. C'est une question de logique à ce stade

    Voici un code qui fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Attaquant
    {
        Vaisseau[] temp = new Vaisseau[10];
        temp[0] = new Vaisseau();
    }
    par contre l'utilisation d'un tableau nécessite de connaître sa dimension avant de pouvoir le créer (10 dans l'exemple de code) et implique donc que tu connaisses la taille maximale du tableau au moment de sa création, car si jamais ton tableau est dynamique oublie tout de suite les tableaux.

    Si ta liste d'objet est dynamique, et vu que tu utilises le framework 2.0, plutôt que d'utiliser un tableau tu devrais te tourner vers les collections génériques
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Attaquant
    {
        List<Vaisseau> list = new List<Vaisseau>();
        list.Add(new Vaisseau());
    }
    Tu pourras ajouter/retirer les éléments de la liste plus simplement qu'avec un tableau classique

  3. #3
    Membre éclairé Avatar de dorian833
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 223
    Par défaut
    Merci, j'avais oublié l'existance des listes chaînées

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment utiliser une classe de fonction
    Par WBO dans le forum VB.NET
    Réponses: 5
    Dernier message: 08/12/2008, 14h27
  2. [1.x] comment utiliser une class métier perso ?
    Par guiyomh dans le forum Symfony
    Réponses: 2
    Dernier message: 19/11/2008, 12h56
  3. Comment utiliser une classe Java dans une appli PB ?
    Par bobychezA56 dans le forum Powerbuilder
    Réponses: 0
    Dernier message: 09/04/2008, 18h07
  4. Réponses: 0
    Dernier message: 31/03/2008, 11h36
  5. Comment utiliser une classe ?
    Par toinou62 dans le forum ASP
    Réponses: 1
    Dernier message: 09/10/2007, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo