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 :

mettre la reference d'une variable dans une autre au lieu de passer la valeur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Juillet 2015
    Messages : 128
    Par défaut mettre la reference d'une variable dans une autre au lieu de passer la valeur
    bonjour, alors ce que j'essaie de faire c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public lst as new list(of blabla)
     
    function toto(byRef tata)
       return tata(0)
    end function
     
     
    dim bb = toto(lst)
    et là je veut que bb devient lst(0)

    je veut pas que bb prend juste la valeur de lst(0), mais qu'elle soit une sorte d'Alias, quand je change la valeur de bb elle change la valeur de lst(0), je veut que bb et lst(0) aient la même réference dans la mémoire et pas qu'ils soient 2 variables indépendantes

    alors comment faire svp, (je sais que je peut bypasser tout ça en passant l'index (0 dans cet example), mais par soucis d'optimisation et en sachant que enfait c'est plusieurs lists dans des list .. j'ai pas envie de le faire comme ça

    merci d'avance pour toute aide

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    C'est déjà le cas par défaut pour tous les types complexes comme les listes et toutes les classes que tu fais toi même. Seul les types "de base" comme INTEGER, DECIMAL, BYTE, etc... sont passé par valeur.
    Donc ça ne marche que si le type de blabla n'est pas un type de base. Sinon, il vous faudra l'encapsuler dans une autre classe.

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2015
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

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

    Informations forums :
    Inscription : Juillet 2015
    Messages : 128
    Par défaut merci pour la réponse
    moi je croyait que s'était comme ça n'a pas marché pour moi c'est pour ça que je suis venu ici, mais vous devez avoir raison j'ai du avoir un beug, que j'ai raté car c'est un plutôt grand projet,

    bref merci beaucoups d'avoir répondu

  4. #4
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Tu prends le problème à l'envers.

    Il faut affecter à ton paramètre la référence :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public lst as new list(of blabla)
     
    function toto(byRef tata, byRef toto)
       toto = tata(0)
    end function
     
     
    dim bb
    toto(lst, bb)

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

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