IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Avez vous trouver ces question idiotes

Votants
2. Vous ne pouvez pas participer à ce sondage.
  • non, c'est mal expliqué dans l'aide

    1 50,00%
  • un peu

    0 0%
  • Oui, je suis un idiot

    1 50,00%
Windows Forms Discussion :

un For Each qui ne fonctionne pas avec une collection maison !


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut un For Each qui ne fonctionne pas avec une collection maison !
    bonsoir,
    Je transforme une application VB6 en VB2005 : Ouf je m'accroche !

    voici ma classe de base : rien de tres .....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Public Class cArbHier 
     Private mstrArbHierCode As String 
     Private mstrArbHierDescription As String 
     
    Public Property ArbHierCode() As String 
    <div style="margin-left:40px">Get 
    <div style="margin-left:40px">Return mstrArbHierCode</div>End Get 
    Set(ByVal value As String) 
    <div style="margin-left:40px">mstrArbHierCode = value</div>End Set</div>End Property 
     
     Public Property ArbHierDescription() As String 
      Get 
         Return mstrArbHierDescription 
      End Get 
      Set(ByVal value As String) 
         mstrArbHierDescription = value 
      End Set 
     End Property 
    End Class
    Je cree ma classe de collection comme suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Imports System.Collections 
     
    Public Class cArbHiers 
     Private mCollection As System.Collections.Generic.List(Of cArbHier) 
     Private mlinkArbHier As cArbHier 
     
     Sub New() 
      mCollection = New System.Collections.Generic.List(Of cArbHier) 
      mlinkArbHier = New cArbHier 
     End Sub 
     
     Public Function Add(ByVal obAjouter As cArbHier, ByVal lngKey As Integer) As cArbHier 
      mCollection.Add(obAjouter) 
      Add = obAjouter 
     End Function 
     
     Public ReadOnly Property Item(ByVal Index As Integer) As cArbHier 
      Get 
       Item = mCollection.Item(Index) 
      End Get 
     End Property 
     
     Public ReadOnly Property Count() As Integer 
      Get 
       Count = mCollection.Count 
      End Get 
     End Property 
     
     Public Property cArbHier() As cArbHier 
      Get 
       If mlinkArbHier Is Nothing Then 
        mlinkArbHier = New cArbHier 
       End If 
       cArbHier = mlinkArbHier 
      End Get 
      Set(ByVal value As Codex_Vp_App.cArbHier) 
       mlinkArbHier = value 
      End Set 
     End Property 
    End Class
    les lignes suivantes fonctionne correctement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim toto As New cArbHier 
     
    toto.ArbHierCode = "1Test" 
     
    Dim coltoto As New cArbHiers 
     
    coltoto.Add(toto)
    Console.WriteLine(coltoto.Item(1).ArbHierCode)
    Par Contre Celle-ci c'est la misére :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each titi As cArbHier In coltoto
       Console.WriteLine(titi.ArbHierCode)
    Next
    j'ai lu beaucoup mais je n'ai pas trouver de solution.
    Merci de votre aide


    Ps conseil l'excelent tutorial :
    http://plasserre.developpez.com

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 119
    Points
    25 119
    Par défaut
    quel est le problème exactement ?
    as tu bien option explicit et option strict on ?

  3. #3
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 688
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 688
    Points : 1 960
    Points
    1 960
    Par défaut
    Quelle est l'exception qui se produit ?

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Il faut que ta classe implémente l'interface IEnumerable

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    au fait, pourquoi ne pas simplement faire hériter ta classe cArbHiers de List(Of cArbHier) ? :

    Public Class cArbHiers Inherits List(Of cArbHier)

    End Class

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Erreur produite
    Voici l'erreur qui est produite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Erreur	1	L'expression est du type 'Codex_Vp_App.cArbHiers', qui n'est pas un type collection.	
    C:\Users\TavernierEmmanuelAdm\Documents\Developpement_Visual_Basic\Codex-Vp_07\Codex-Vp\Codex-Vp-App\01_Forms\frmCodexVpApp.vb	78	32	Codex-Vp-App

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par tomlev Voir le message
    au fait, pourquoi ne pas simplement faire hériter ta classe cArbHiers de List(Of cArbHier) ? :

    Public Class cArbHiers Inherits List(Of cArbHier)

    End Class

    j'ai testé ce code cela me produit une erreur : Fin d'instruction attendue !

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    En fait il y a une erreur de syntaxe, il faut passer à la ligne avant "Inherits"... décidément j'aime pas ce langage, vive C# !
    Sinon, l'erreur que tu indiques confirme bien ce que je pensais : pour utiliser For Each sur une variable, il faut que son type implémente l'interface IEnumerable, ou hérite d'un type collection existant.
    Si tu hérites de List(Of cArbHier) tu n'as a priori rien d'autre à écrire dans la classe, à moins que tu veuilles ajouter des fonctionnalités à la collection.

Discussions similaires

  1. [AJAX] xmlhttprequest.send qui ne fonctionne pas avec une variable !
    Par hoaxpunk dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/03/2009, 18h17
  2. LIKE qui ne fonctionne pas avec une espace
    Par CinePhil dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/10/2008, 16h46
  3. Problème de addEventListener qui ne fonctionne pas avec un attachMovie
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 27/09/2007, 10h47
  4. tutoriel qui ne fonctionne pas avec glassfish
    Par dev7 dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 13/04/2007, 17h25
  5. Réponses: 10
    Dernier message: 13/03/2007, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo