2009-08-04 10 views
2

Je l'ai utilisé System.Collections.Queue et son objet form_elements_queuePeut-on modifier les propriétés de l'objet qui se trouve dans la file d'attente - C#?

if (form_elements_queue.Count > 0) 
     queue_element = (RecordQueue)form_elements_queue.Peek(); 

Je modifier le queue_element comme ci-dessous,

queue_element.Children--; 

RecordQueue est mon type personnalisé que j'ENQUEUE dans form_elements_queue.

mais il ne fait pas référence à la file d'attente d'origine. Comment puis-je référencer l'élément de file d'attente à l'objet d'origine qui se trouve dans la file d'attente.

Répondre

5

Est-ce que RecordQueue est une structure ou une classe? Si c'est un cours, ça devrait aller. Comment vérifiez-vous si la file d'attente originale a été modifiée?

Comment vérifiez-vous si la file d'attente d'origine a été modifiée?

+1

Vous avez raison. Si 'RecordQueue' est une' classe', le code ci-dessus modifiera l'objet qui se trouve dans la file d'attente. S'il s'agit d'une structure, le code ci-dessus apportera des modifications à une copie de la valeur qui se trouve dans la file d'attente. – jpbochi

+0

oui oui c'est, c'est une structure: (Je dois utiliser classe! Right? – shahjapan

+0

@Japan: Oui, en utilisant une classe va résoudre ce problème particulier pour vous.Vous devriez presque toujours utiliser des classes de toute façon - c'est très rarement une bonne idée de créer votre propre structure, IMO –