Structures

Résolu
cs_mpc Messages postés 15 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 27 mars 2007 - 27 mars 2007 à 10:43
cs_mpc Messages postés 15 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 27 mars 2007 - 27 mars 2007 à 13:15
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

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
27 mars 2007 à 11:07
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]
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
27 mars 2007 à 11:51
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 ];
3
cs_mpc Messages postés 15 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 27 mars 2007 1
27 mars 2007 à 13:13
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
0
cs_mpc Messages postés 15 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 27 mars 2007 1
27 mars 2007 à 13:15
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
0
Rejoignez-nous