begin process at 2012 02 14 10:19:33
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

Exécution

 > 

byVal ou byRef


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

byVal ou byRef

vendredi 27 mai 2005 à 17:27:49 | byVal ou byRef

cuq

Petite question,

Pour passer des variables à une fonction ou une subroutine est-il préférable d'utiliser : byVal ou byRef

Quel est le mode le plus rapide ?

Merci
vendredi 27 mai 2005 à 17:30:17 | Re : byVal ou byRef

drahcir

Salut,

je dirais byVal mais je ne connaît pas bien le mot clé byRef (je ne pratique pas le vb.net depuis trés longtemps). En fait les réponses m'intéressent aussi.

@+ 
vendredi 27 mai 2005 à 17:57:06 | Re : byVal ou byRef

Gobillot

Réponse acceptée !
le plus rapide c'est Byref, pas de création de copie.
le plus sécurisant c'est ByVal, impossible de modifier la variable puisque c'est une copie temporaire.
par défaut c'est byRef en vb6 et byVal en vb.Net

Daniel
vendredi 27 mai 2005 à 18:02:28 | Re : byVal ou byRef

bidoch78

Membre Club
byval => passage du parametre par valeur (une copie de la variable est effectué)
sécurité lors de la manipulation de la variable par des fonctions

byref => passage du parametre par référence (une référence est passée)
possibilité par la fonction de modifié la variable

dans Vb6, byref est normalement plus rapide que byval (pas necessairement sous .Net)
 
Bidoch78
vendredi 27 mai 2005 à 18:19:00 | Re : byVal ou byRef

Gobillot

vous faites rire avec références et valeurs.
valeur veut dire qu'on s'intéresse à la valeur c'est à dire au contenu de la variable et référence c'est la variable qui compte.
dans tous les cas c'est toujours l'adresse d'une variable qui est passée, jamais la valeur.

Daniel
vendredi 27 mai 2005 à 18:52:08 | Re : byVal ou byRef

dragon

faux

byref c'est l'addresse mémoire de la variable qui est passé et byval est la valeur de la variable

donc byref passe une addresse et byval crée une nouvelle variable en mémoire et la passe à la fonction. En mémoire c'est 2 chose totallement différente qui est faite masi il est conseiller d'utiliser byval en tout temps pour éviter les bugs et byref quand on veut retourné plusieurs retour

par contre, un tableau est toujuors passé en référence et jamais en valeur, puisqu'un tableau est en fait un tableau d'addresse mémoire et non un tableau de valeur 

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------

vendredi 27 mai 2005 à 19:02:45 | Re : byVal ou byRef

jack

Administrateur CodeS-SourceS
Salut
Ca sert à quoi de poster des sources/tutos si personne n'a le courage de faire une toute petite recherche sur le site ?
Ah lalala : http://www.vbfrance.com/code.aspx?ID=7081

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
vendredi 27 mai 2005 à 19:11:03 | Re : byVal ou byRef

Gobillot

comment faux !
c'est toujours l'adresse d'une variable qui est passée.
pour passer un tableau tu peux passer le premier élément.

Daniel
vendredi 27 mai 2005 à 19:46:17 | Re : byVal ou byRef

dragon

ah oki ouin si tu considère que créé une valeur en mémoire et passer son addresse de la nouvelle valeur créé c'est une adresse mémoire ouin .... j'aime juste pas comment tu l'as dit c'est tout

-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------

lundi 30 mai 2005 à 10:58:36 | Re : byVal ou byRef

bidoch78

Membre Club
De toute facon, quelque part une variable fait référence à un pointeur en mémoire, le faite de spécifier Byval ou Byref permet de connaitre au compilateur la maniere dont tu vas utiliser la variable, et c'est qui compte pour le développeur. Si tu as fais du c++ et que tu testes les passages par référence ou par copie d'un objet, en tracant le constructeur tu vois clairement que lors du passage par valeur, une nouvelle instance de l'objet est créée (et la clairement cela peut entrainer des pbs de performance), lorsque tu travailles avec une chaine de caractere et que tu la passes par ByVal le compilateur va réallouer en mémoire la chaine et ensuite la passer en parametre puis elle va etre détruite en sortie de la fonction (pour simplifier la chose), alors qu'avec ByRef c'est la meme chaine qui va etre passée.

Bidoch78

1 2

Cette discussion est classée dans : byval, byref


Répondre à ce message

Sujets en rapport avec ce message

CreateRemoteThread déclaration ? [ par VladDracula ] Après la lecture d'offsets, l'écriture dans la mémoire, je me suis attaqué a l'injection de dll.Pour faire un programme tout bête je me suis inspiré d IThumbnailCache [ par Vici1 ] Bonjour,Je travaille sur un projet VB 2005 pour créer un explorateur avec des cases à cocher.Il est presque abouti.J'ai un pb pour récupérer les thumb Passer un tableau de byte dans une fonction en C++ attendant un byref byte (unsigned char*) [ par borislecrack ] Bonjour, Je cherche à utiliser la fonction GetBitmapBits de la dll interop.dexterlib.dll elle demande en argument pour récupérer le bitmap un unsign drag and drop de plusieurs labels [ par bahharkarim ] bonjour a tout le monde j'ai créer une application ou il y a 6 labels et j'utilise la fonction drag and drop le problème c'est que lors le contenu d ajouter un nombre a une date [ par niblon ] Bonjour a tous je n'arrive pas a ajouter un chiffre a une date .j'explique : j'ai une form avec deux MaskedTextBox ((mtb_Date ) et (mtb_DateFin))et u Structure du code MVC [ par witschi ] Bonjour à tous, J'ai une petite question concernant la structure de mon code. Alors voilà, mon code est structurée en MVC et j'aimerais connaître votr Niveau d'une cuve avec l'api chord [ par pobos ] Bonjour à tous, Je suis entrain de développer une application de gestion de station service. Il y a une partie gestion de stock où je dois represente Pb Listbox [ par alexsupertramp ] Bonjour, Je fais un programme sur les options. J'ai deux listbox. La première affiche une liste d'indices boursiers. Après le choix d'un indice, la s "Push Http via une connexion persistante [ par Zwyxy ] Bonjour, Je réalise des tests sur une plateforme qui met à disposition une interface en REST et qui propose la notification de changements au travers Besoin de lire une ligne spécifique dans un fichier texte [ par bolivier4 ] Bonjour J'avais réaliser sous VB6 un programme permettant de lire un fichier texte "D:\Test.txt" de ce type [LOGO] 1=AMS 2=DVH 3=BDV 4=RTV etc...


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales