VB2005 Probleme Modification Structure/Collection

LiKayn
VB2005 Probleme Modification Structure/Collection

Salut,

Je viens de commencer a etudier le visual studio 2005 et je me suis bloqué sur une modification dans un petit projet.
l'objectif c'est de creer un programme qui permet d'executer plusieurs taches sur les clients et les voitures dans une societe de vente des voitures.

j'ai fai presque tout, l'ajout, la recherche, la suppression mais je me suis bloqué sur la modification.

j'ai 2 collections et 2 structures : une pour les voitures et l'autre pour les clients

prenons cet exemple :

Imports System.Collections
Module Module1
Public Structure voiture
Dim marque, serie, couleur, cinacheteur, matricule, type As String
End Structure
Dim voitures As New Collection
Sub main()
Dim v1, v2, v3 As New voiture
v1.marque = "Mercedes"
v1.serie = "SLK"
v1.couleur = "Noir"
v1.matricule = "0001"
v1.type = "Essence"
voitures.Add(v1, v1.matricule)

v2.marque = "Volkswagen"
v2.serie = "TDI"
v2.couleur = "Vert"
v2.matricule = "0002"
v2.type = "Diesel"
voitures.Add(v2, v2.matricule)

v3.marque = "Porsh"
v3.serie = "Caenn"
v3.couleur = "Jaune"
v3.matricule = "0003"
v3.type = "Essence"
voitures.Add(v3, v3.matricule)

voitures.Item(3).marque = "aaaaaaaa" <<<<==== la ca ne marche pas et je ne sais pas pourquoi
Console.WriteLine("")
Console.Read()
End Sub

End Module

L'erreur que je recois : Assignation de liaison tardive à un champ de type valeur 'voiture' non valide lorsque 'voiture' représente le résultat d'une expression de liaison tardive.

bon bref je veux modifier un element d'une structures dans une collection sans passer par la suppression .
J'attends vos réponses

Cordialement

Merci .

Niroken

Hello,

En fait ton soucis vient du fait que tu déclarait voiture comme une structure et non comme une classe.

Ce site indique la différence entre les deux (je connaissais pas nn plus) :
http://www.startvbdotnet.com/oop/structure.aspx

Ce code la marche parfaitement:

Module Module1

    Public Class voiture
        Public marque, serie, couleur, cinacheteur, matricule, type As String
    End Class


    Dim voitures As New Collection

    Sub Main()
        Dim v1, v2, v3 As New voiture
        v1.marque = "Mercedes"
        v1.serie = "SLK"
        v1.couleur = "Noir"
        v1.matricule = "0001"
        v1.type = "Essence"
        voitures.Add(v1, v1.matricule)

        v2.marque = "Volkswagen"
        v2.serie = "TDI"
        v2.couleur = "Vert"
        v2.matricule = "0002"
        v2.type = "Diesel"
        voitures.Add(v2, v2.matricule)

        v3.marque = "Porsh"
        v3.serie = "Caenn"
        v3.couleur = "Jaune"
        v3.matricule = "0003"
        v3.type = "Essence"
        voitures.Add(v3, v3.matricule)

        voitures.Item(3).marque = "aa"

        Console.WriteLine(voitures.Item(3).marque)
        Console.WriteLine("")
        Console.Read()

    End Sub

End Module

Par contre la seule inconnue encore, c'est le message d'erreur que tu avais, je l'ai reproduit mais c'est du chinois pour moi...

Bonne chance,
Niroken