cs_mpc
Messages postés15Date d'inscriptionlundi 26 janvier 2004StatutMembreDernière intervention27 mars 2007
-
27 mars 2007 à 10:43
cs_mpc
Messages postés15Date d'inscriptionlundi 26 janvier 2004StatutMembreDernière intervention27 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;
}
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 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)
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 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 ];
cs_mpc
Messages postés15Date d'inscriptionlundi 26 janvier 2004StatutMembreDernière intervention27 mars 20071 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.
cs_mpc
Messages postés15Date d'inscriptionlundi 26 janvier 2004StatutMembreDernière intervention27 mars 20071 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.