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 :

tableau de structure pour grand debutant [Débutant]


Sujet :

C#

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut tableau de structure pour grand debutant
    Bonjour

    je tente de convertir une appli delphi en c#...

    J ai en delphi un array de record que je traduis ainsi en c#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     public struct MyStruct
            {
                int B;
                double Prix;
                public MyStruct(int prix, int b)
                {
                    Prix = prix;
                    B = b;
                }
            }
    ensuite je le remplis ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     MyStruct[] myTable = new MyStruct[]
    {
       new MyStruct(0, 0),
       new MyStruct(1, 1),
       new MyStruct(2, 2)
    };
    J aimerais pouvoir afficher, comme je le faisais sous delphi par exemple
    myTable[0].prix mais cela ne fonctionne pas.

    Ma (mes) Questions :
    Est-ce le bon choix employer ce type de structure pour l emploi que je souhaite en faire et...où me suis-je raté ?

    merci de votre aide et de vos conseils

    stephane

  2. #2
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    J'aurais utilisé un objet au lieu d'une structure. je dois dire que je ne souviens plus exactement des record en Delphi, ce ne ressemble pas à un Dictionnaire ?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par sp2308 Voir le message
    myTable[0].prix mais cela ne fonctionne pas.
    Parce que tes champs sont privés (private est l'accessibilité par défaut). Tu peux les rendre publics, mais ce n'est pas une très bonne pratique. Crée plutôt des propriétés pour les exposer.


    Citation Envoyé par sp2308 Voir le message
    Est-ce le bon choix employer ce type de structure pour l emploi que je souhaite en faire et...où me suis-je raté ?
    Oui, mais utilise des classes plutôt que des structures. C'est le meilleur choix dans la plupart des cas, les structures en C# ne s'utilisent que dans des cas assez spécifiques.

    Au final ton code pourrait ressembler à ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
            public class MyClass
            {
                private readonly int _b;
                private readonly double _prix;
                public MyClass(double prix, int b)
                {
                    _prix = prix;
                    _b = b;
                }
     
                public int B { get { return _b; } }
                public double Prix { get { return _prix; } }
            }
    J'ai mis les champs et les propriétés en readonly, mais tu peux toujours changer ça si besoin.

    Au passage, pour stocker un prix, on utilise le type decimal, plus adapté que double pour des raisons de précision.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 549
    Points : 226
    Points
    226
    Par défaut
    merci ça fonctionne nickel.

    J envisageais une structure puisque j utilisais un Trecord en delphi et à lire les differents forums, c etait l equivalent...

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

Discussions similaires

  1. Structure pour grands entiers positifs
    Par NonoSC dans le forum C#
    Réponses: 7
    Dernier message: 19/04/2012, 13h42
  2. Réponses: 8
    Dernier message: 17/08/2010, 14h45
  3. Choix d'une structure pour une liste de tableau d'ansistring
    Par kurkaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/05/2007, 08h36
  4. difference pour passer tableau de structure
    Par ciberju dans le forum C
    Réponses: 2
    Dernier message: 28/08/2006, 15h23

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