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

VB.NET Discussion :

'add' n'est pas un membre de la classe 'MyClass' [Débutant]


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3
    Par défaut 'add' n'est pas un membre de la classe 'MyClass'
    Bonjour,


    Suis un peu nouveau sur le .net et si une personne charitable pouvait m'éclairer!!
    Je n'arrive pas à ajouter des éléments dans ma classe "Target".
    Quand j'essaye donc d'ajouter un élément comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim mItem As Target
     
            mItem.add(New Target("Tel1", "ID_1"))
    le message obtenu est le suivant:
    'add' n'est pas un membre de la classe 'Target'

    De plus quand j'appelle la surcharge de ma procédure, j'ai le message suivant:
    "La classe 'Target' ne peut être indéxé car elle n'a pas de propriété par défaut

    Voici la classe Target en question:
    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
    Public Class Target
     
            Private m_number As String
            Private m_id As String
     
            Public Sub New(ByVal number As String, ByVal id As String)
                Me.number = number
                Me.id = id
            End Sub
     
            Public Property number() As String
                Get
                    Return m_number
                End Get
                Set(ByVal value As String)
                    m_number = value
                End Set
            End Property
     
            Public Property id() As String
                Get
                    Return m_id
                End Get
                Set(ByVal value As String)
                    m_id = value
                End Set
            End Property
     
        End Class
    Alors si quelqu'un à une idée, j'en serai fort reconnaissant.


    Merci d'avance

  2. #2
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Il n'y a pas de méthode add dans ta classe donc il est logique que le compilo râle quand il ne trouve pas la méthode add de la classe target que tu lui demandes d'utiliser.
    Qui plus est, même si ça fonctionnait, tu tenterais d'appeler une méthode depuis une instance non initialisée (qui vaut donc Nothing) et donc ça planterait sûrement avec une NullReferenceException.

    J'avoue ne pas bien saisir ce que tu cherches à faire exactement

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3
    Par défaut
    Je vais essayer de répondre au mieux à tes questions:
    je voudrai ajouter dynamiquement les éléments télephones et id (en fonction des saisies utilisateurs), donc je ne peux pas connaitre le nombre d'éléments à créer à l'avance. Je recherche donc la bonne instanciation de ma classe Target et la méthode pour ajouter autant de télephones et d'id que nécessaire.

    Je ne suis absolument pas sur de l'instance:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim mItem As Target
            mItem.add(New Target("Tel1", "ID_1"))
    Et il faudra aussi certainement modifier la classe...

    Donc si je resume:
    - comment instancier correctement ma variable mItem
    - que faut-il modifier dans la classe Target pour accepter des nouveaux éléments

    Merci par avance

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par Raumain Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim mItem As Target
            mItem.add(New Target("Tel1", "ID_1"))
    Si je comprend bien, tu souhaites conserver une liste de "Target". Dans ce cas ton mItem ne doit pas être de type Target, mais List(Of Target). cf List(Of T)

  5. #5
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Oui ça correspond à ce que j'avais imaginé sans être sûr

    Ta classe Target (choix de nom étrange, enfin j'ai pas le contexte non plus ) représente UN téléphone/id du coup si tu en veux plusieurs ; il te faut un conteneur de Target (par exemple un tableau).
    Après comme tu dis que tu veux les ajouter dynamiquement (autrement dit tu ne sais pas combien il y en a à l'avance) il te faut un conteneur dynamique (donc pas un tableau) ; par exemple une List(Of Target) comme suggéré par ZenZiTone.

    Si on résume le tout :

    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
    Public Class Target
     
        Public Sub New(number As String, id As String)
            Me.Number = number
            Me.Id = id
        End Sub
     
     
        Public Property Number As String
     
        Public Property Id As String
     
     
    End Class
     
    ' ...
     
    Dim targets As New List(Of Target)
    targets.Add(New Target("Tel1", "ID_1")) ' pour chaque Target à rajouter
     
    ' exemple avec une boucle :
     
    Dim targets As New List(Of Target)
     
    Do Until saisieFinie
        Dim tel As String = Console.ReadLine
        Dim id As String = Console.ReadLine
     
        Dim mItem As New Target(tel, id)
        targets.Add (mItem)
     
        ' + un truc qui modifie saisieFinie pour pas boucler indéfiniment ^^
    Loop

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3
    Par défaut
    Super ça marche!!
    j'ai juste fait une boucle avec For Next


    Et il fallu redefinir l'objet en list (of Target) et non en Target, dans l'appel de la procédure utilisant 'targets', chose que j'avais oublié...


    Merci beaucoup pour votre aide


    Romain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] BC30456: Title n'est pas un membre de ASP
    Par xcaliban dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/04/2012, 05h14
  2. Réponses: 2
    Dernier message: 29/12/2011, 15h10
  3. Erreur du compilateur: Theme n'est pas un membre
    Par jubourbon dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/04/2009, 01h49
  4. Erreur"n'est pas un membre de Tform"
    Par amine198927 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/05/2008, 15h13
  5. 'Context' n'est pas un membre de ..
    Par spengler dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/11/2007, 16h12

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