Gambas France BETA


Pas de compte ? Incription

code écrit correctement...

1
AuteurMessages
spheris#1 Posté le 14/10/2022 à 05:04:26
Bonjour,

A) Qu'est-il le plus correct d'écrire :

Dans ma form :

1
2
3
4
5
PRIVATE SUB mycalcul
DIM Myresult AS INTEGER
DIM v2 AS INTEGER = 25
Myresult = Module1.myvariable + v2
END


et dans le Module1:
1
PUBLIC myvariable AS INTEGER


ou bien d'écrire :

Dans ma form :

1
2
3
4
5
PRIVATE SUB Mycalcul
DIM Myresult AS INTEGER
DIM v2 AS INTEGER = 25
myresult = Module1.traiter(v2)
END


et dans le Module1 :

1
2
3
4
5
PRIVATE myvariable AS INTEGER

PUBLIC SUB traiter(myval AS INTEGER)
RETURN myvariable + myval
END


B) lequel des deux exemples prendra plus de mémoire ou de temps CPU?
C) Vaut-il mieux avoir une variable partagée dans un module ou plutôt une méthode publique dans un module?


Merci pour vos réponses.
valaquarus#2 Posté le 14/10/2022 à 11:19:14
-- Unus Ex Altera --Bonjour Spheris,
belle et bonne question mais est ce vraiment le temps d'usage de la cpu qui est en cause ?
La question devrait être posée par rapport à la visibilité des variables utilisées, locales, globales, publics pour voir quel est le degré d'accessibilité à celles-ci et l'utilité de la variable dans le programme.
D'ailleurs, comment mesurer le temps d'utilisation de la CPU pour les différentes propositions que tu fais?
Je ne vois pas l'intérêt d'avoir une variable privée (de dessert) dans un module qui devrait être public, la première exposée serait mon choix.
Vaut-il mieux avoir une variable partagée dans un module ou plutôt une méthode publique dans un module?

Ça c'est une sacrée question !
À mes yeux les deux sont de bonnes options cela dépend de la vitesse du vent, de l'hygrométrie et de l'âge du capitaine.
J'ai tendance à utiliser les modules comme des axes de rotation dans mes programmes, ils servent à traiter ou à rendre au programme principal et souvent ils sont l'ossature du programme principal.

Mais je ne suis pas le phoenix de ces bois et d'autres te fourniront des réponses certainement plus judicieuses mais ce n'est pas parce qu'on a rien à dire qu'il faut se taire.
Ah que salut !
Philippe
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
linuxos#3 Posté le 20/10/2022 à 15:23:32
Un peu de sel, de poivre et la crevette sera... Bonjour,

Je viendrai ajouter une petite remarque, un Module est statique, ce qui veut dire que les variables ou fonctions déclarées dedans seront uniques dans la mémoire (1 seul exemplaire)
Donc comme dit Valaquarus, les Modules servent généralementàa placer des Variables ou Fonctions génériques pour tout le reste du programme.

Les Forms, Classes sont des objets donc ils sont 'instenciables' donc une meme version d'un Form ou Classes, etc... peuvent se trouver en mémoire durant le fonctionnement du dit programme.

Je ne sais pas si je suis clair dans mes explications.

Olivier
Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous.
1