Structures [Résolu]

Signaler
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007
-
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007
-
Bonjour,

J'ai actuellement 2 problèmes en C#:

1er problème:

Je souhaite faire un tableau de structures. ça , pas de problème .
mais la structure composant mon tableau contient elle-même un tableau de structures. Au niveau de la compilation, tout passe mais au moment de l'exécution il plante. cela me semble logique car il faudrait faire un new pour déclarer mon tableau de structures dans ma structure mais il est interdit de faire un new dans une structure.
voici le code:

namespace tableaustructures
{    class Class1
    {    struct st1
        {    public int num;
            public int qté;
        }
        struct st2
        {    public string nom;
            public st1[] commande;
        }
 
        static void Main(string[] args)
{            st2[] TCD = new st2[10];
             ................
}

Y-a-t-il une possibilité de faire ce genre de choses ?

mon 2ème problème:

En mode console, y-a-t-il possibilité de  faire des affichages plus conviviaux en changeant la police, le taille, en centrant..... ?

mp

4 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
Pour ton 2nd problème, avec .net 2.0, il est possible de changer les couleurs de la console... Regarde du coté de System.Console

Pour 1er problème... une structure ne doit contenir QUE des types Valeurs (ValueType)... un tableau n'en est pas un (string non plus)... dans ce cas, il faut que tu utilises une classe pour St2.

En gros, pour reconnaitre un type valeur d'un type d'instance... faire le test suivant et compiler :

int toto = null; // marche pas (ValueType)
string titi = null; // ca marche (Instance)
int[] tutu = null; ca marche (Instance)

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Salut, effectivement il est préférable d'utiliser une classe, et même si un tableau est un type référence, rien n'empêche d'avoir un tableau de struct dans une struct.

st2[ ] tcd = new st2[ 10 ];
for( int i = 0; i < tcd.Length; i++ )
tcd[ i ].commande = new st1[ 10 ];
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007

je te remercie pour ta réponse, j'avais en effet résolu le problème avec une classe mais je voulais être sure que je ne passais pas à coté de quelque chose.

mp
Messages postés
15
Date d'inscription
lundi 26 janvier 2004
Statut
Membre
Dernière intervention
27 mars 2007

Merci à toi aussi.
C'est bizarre, j'avais essayé de faire quelque chose du même genre mais ça n'avait pas marché alors que là, il n'y a pas de problème !
J'avais dû raté une étape !! l'essentiel, c'est que ça marche , merci.

mp