Ok J'ai un hoquet de langue croisée. En C# avec ses grandes collections comme liste et je :Comment puis-je créer une collection de références en C#
une classe de la carte avec des propriétés de:
List
<byte[]>
Images;
Liste <Tile>
Carreaux;
une classe de carreaux:
byte[] ImageData;
int X;
int Y;
Maintenant, je veux ajouter une image à la classe de la carte et ont la propriété ImageData des classes de tuiles de « référence » it. J'ai découvert que je ne peux pas simplement lui assigner des Images [0]. Vous ne pouvez pas avoir de référence à un objet d'une liste.
Mon problème était de créer un dictionnaire. Est-ce le meilleur moyen ou puis-je avoir un "pointeur" sur une collection d'objets?
- en réponse aux commentaires si j'ai un tas de tuiles qui ont imageData pointant vers le premier tableau d'octets dans la liste puis-je modifier cette image dans la liste et saisir l'image dans les carreaux et ils sont l'ancien image assignemnt. Donc assigner des tuiles pour avoir la première image dans la liste, puis changer cette image, je m'attends maintenant à ce que la mosaïque fasse référence à la nouvelle image. Ils ne le font pas.
RÉVISION FINALE - Regardez le code de gladford3x (je n'ai pas encore maîtrisé la mise en forme). la dernière ligne de Main sera
myMap.Images [0] = image2;
bien lorsque vous appelez les myMap.Tiles [0] .ImageData il aura les données du premier tableau d'octets
Je ne suis pas ce que vous voulez. Si vous ajoutez des objets Tile à votre liste, vous obtiendrez une liste de références puisque Tile est un type de référence. Pouvez-vous donner un exemple de code de ce que vous voulez faire? – galford13x
Je ne suis pas sûr de ce que vous essayez de faire ici. 'Images [0]' devrait fonctionner totalement. De plus, la partie "pointeur sur une collection d'objets" est un peu confuse: 'this.Images' * est pratiquement un tel pointeur. – Jon
Parlez-vous de changer l'image stockée sur Images [0] et d'avoir des carreaux utilisant cette image reflètent le changement? Si c'est le cas, vous pouvez passer un index plutôt que les données d'image et utiliser la carte lorsque vous avez besoin de récupérer l'image réelle. C'est à dire. au lieu de stocker ImageData, stockez ImageIndex. –