2012-04-25 3 views
0

J'essaie de remplir un tableau qui est contenu dans une structure avec quelques valeurs mais je continue d'obtenir des erreurs, peu importe ce que j'essaie.remplir un tableau dans une structure #

ma structure ressemble à ceci

public struct boardState 
    { 
     public int structid; 
     public char[] state; 
    } 

ci-dessous dans le initialiseur je crée une nouvelle boardState et d'essayer de le remplir avec des valeurs comme celui-ci

boardState _state_ = new boardState(); 
     _state_.structid = 1; 
     _state_.state[9] = {'o','-','-','-','o','-','-','-','-','o'}; 

structid semble fonctionner correctement, mais je reçois une erreur au {'o', '-' etc etc} me disant '; attendu'. J'ai parcouru le code ci-dessus et je m'assure qu'il n'y a pas de "missing" (confirmé par le programme qui s'exécute sans cette ligne) donc je suppose que vous ne pouvez pas l'assigner au tableau de cette manière. Comment puis-je affecter au tableau d'état?

EDIT: - a ajouté la virgule que j'avais manquée mais recevant toujours la même erreur.

+2

Note latérale: s'il vous plaît envisager d'utiliser la classe au lieu de struct. Ou s'il vous plaît confirmer que vous savez quelles sont les conséquences de l'utilisation de struct en C# sont (http://stackoverflow.com/questions/13049/whats-the-difference-between-struct-and-class-in-net) –

+1

Je dois juste dire que je suis d'accord avec Alexei, et ajouter que vous avez une structure mutable qui est généralement considérée comme une mauvaise idée. En outre, en ayant un objet dans la structure, la plupart du but de la structure est parti. – Guffa

Répondre

2

Vous n'avez pas besoin [9]. Il essaie d'affecter un tableau à un seul caractère. Au lieu de cela utilisez simplement ceci:

_state_.state = new char [] {'o','-','-','-','o','-','-','-','-','o'}; 
+0

Merci beaucoup, ça fonctionne bien maintenant. –

+0

@E_S Je suis content que je puisse vous aider. Envisagez de marquer la réponse comme acceptée. –

2

Il vous manque une virgule et la syntaxe est désactivée.

De:

_state_.state[9] = {'o','-','-','-','o','-','-','-','-''o'}; 

Pour:

_state_.state = new char [] {'o','-','-','-','o','-','-','-','-','o'}; 
+0

Merci d'avoir signalé cela. J'ai ajouté cette virgule mais je reçois toujours la même erreur –

+0

Envisager de lire la réponse entière, pas seulement les 2 premières lignes ... –

Questions connexes