Procédure / fonction

Résolu
cpattin Messages postés 22 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 18 juin 2007 - 13 juin 2007 à 16:14
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 - 15 juin 2007 à 11:27
quelqu'un pourrait m'expliquer les différences et les usages de chacune ?
en me disant un peu plus que : "la fonction retourne une valeur" !

merci

5 réponses

allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
14 juin 2007 à 11:48
Sub Procedure
    ' fait quelque chose : tu t'en fiche du resultat
End Sub

Function Fonction(Byval truc As String) As String
   ' fait des opérations sur la chaine Truc
   ' et renvoi la nouvelle chaine ...
   Return "..."
End Function

Pour l'utilisation :

Procedure() ' tout seul ...
Dim nouvellechaine as string = Fonction() ' la fonction renvoi la chaine (voir plus haut)

donc la seule différence c'est que Function renvoit 1 valeur, on peut pas être plus précis

=> après pour le reste c'est de l'optimisation de code ou savoir comment ça marche au niveau de la compilation, mais vu la question je pense que tu es débutant et que tu veux en savoir plus ... (ou que t'as pas compris ^^)
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
13 juin 2007 à 16:25
ben pourtant c'est la seule différence !

Je dirais (mais sans conviction) que la méthode est légérement plus rapide que la fonction car justement, elle renvoie rien.
0
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
13 juin 2007 à 16:42
J'ajouterais qu'à la compilation, les fonctions deviennent des méthodes avec un paramètre supplémentaire pour la valeur de retour. C'est donc plus rapide du temps d'un push pour le paramètre (négligeable...).

<hr size="2" width="100%" />Julien.
0
cpattin Messages postés 22 Date d'inscription mercredi 23 mai 2007 Statut Membre Dernière intervention 18 juin 2007
15 juin 2007 à 10:11
on a fait 3 semaines de cours dessus en dvt et j'étais pas là ... c'est pour ça !

merci pour cet éclairage ^^  

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
allthew3 Messages postés 551 Date d'inscription samedi 8 janvier 2005 Statut Membre Dernière intervention 12 avril 2008 2
15 juin 2007 à 11:27
merci d'avoir accepter ma réponse ^^ (c'est rare lol)
0