surcharge d'opérateurs ?

surcharge d'opérateurs ? - VB/VBA/VBS - Programmation

Marsh Posté le 03-06-2003 à 16:14:08    

Est-ce qu'en VB (.NET en particulier), il y a possibilité de surcharger les opérateurs +, -, *, etc... pour les classes, comme en C++ ??
 
Merci !

Reply

Marsh Posté le 03-06-2003 à 16:14:08   

Reply

Marsh Posté le 03-06-2003 à 17:36:46    

aucune idée :D . mais qu'est ce que tu veux faire en "surchargeant" +,-...

Reply

Marsh Posté le 03-06-2003 à 17:39:09    

ha si tiens, je viens de voir dans l'aide du framework que l'on peut surcharger les opérateurs en C#. pas de trace en ce qui concerne le vb.net.

Reply

Marsh Posté le 03-06-2003 à 20:31:56    

genesis a écrit :

ha si tiens, je viens de voir dans l'aide du framework que l'on peut surcharger les opérateurs en C#. pas de trace en ce qui concerne le vb.net.


Ce sera la même syntaxe "Vbisée", c'est à dire sans les points virgules grossomodo :)
 
PS: En VB.NET, en COBOL.NET, en JAVA.NET, en ce que tu veux .NET, tu peux RIGOUREUSEMENT faire TOUT ce que tu peux faire en C#, le code au final est RIGOUREUSEMENT le même.

Reply

Marsh Posté le 03-06-2003 à 21:02:59    

j'avais ouie dire qu'en VB.NET, on pouvait pas surcharger les opérateurs en question.  Quelqu'un en a fait?
 
En VB6/VBA en tout cas, tu peux pas :D


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 03-06-2003 à 21:26:14    

Bah ça m'étonerait grandement (bon après tout, tout est possible mais bon :D) puisque lors de la compilation, c'est le même code qui est généré quelque soit le langage, donc normalement, y'a aucune différence au niveau des possibilités.

Reply

Marsh Posté le 03-06-2003 à 21:28:34    

MagicBuzz a écrit :


 
PS: En VB.NET, en COBOL.NET, en JAVA.NET, en ce que tu veux .NET, tu peux RIGOUREUSEMENT faire TOUT ce que tu peux faire en C#, le code au final est RIGOUREUSEMENT le même.


 
:??: ça me semble bizarre cette histoire


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-06-2003 à 21:41:02    

antp a écrit :


:??: ça me semble bizarre cette histoire  


Sisi, ça c'est sûr, pour un algo de même structure, il n'y aura aucune différence entre les différents langages utilisés.
 
Après, il se peut tout de même que certains langages portés aient des limitations au niveau de la syntaxe, interdisant donc certaines choses.

Reply

Marsh Posté le 03-06-2003 à 21:46:02    

Si le langage ne permet pas de redéfinir les opérateurs je vois mal comment tu vas pouvoir les redéfinir...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-06-2003 à 22:04:58    

Bah je suis grandement étonné sur ce sujet. On ne peut, ou il n'y a pas d'exemple tout fait ?

Reply

Marsh Posté le 03-06-2003 à 22:04:58   

Reply

Marsh Posté le 03-06-2003 à 22:12:36    

Comment tu fais en Cobol :??:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-06-2003 à 23:05:34    

J'en sais rien, j'ai jamais fait de cobol, et encore moins du cobol.net Déjà, je sais qu'il est inclu d'office avec VS.NET, mais j'ai jamais trouvé comment l'activer :D

Reply

Marsh Posté le 04-06-2003 à 07:56:54    

J'ai demandé à un collègue qui bosse en .NET, tant en VB qu'en C# et qui adore bidouiller et tester:
 
* La surcharge d'opérateurs n'est pas possible en VB.NET
* C# est mieux doté techniquement, certains trucs qu'on peut faire en C# ne peuvent être faites en VB (exemple de la surcharge d'opérateurs + - * / )
* le code généré depuis un source VB.NET se révèle plus rapide que celui généré sur base du même algo en C#.
 
Testé avec le framework 1.0


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 04-06-2003 à 10:22:23    

drasche a écrit :

J'ai demandé à un collègue qui bosse en .NET, tant en VB qu'en C# et qui adore bidouiller et tester:
 
* La surcharge d'opérateurs n'est pas possible en VB.NET
* C# est mieux doté techniquement, certains trucs qu'on peut faire en C# ne peuvent être faites en VB (exemple de la surcharge d'opérateurs + - * / )
* le code généré depuis un source VB.NET se révèle plus rapide que celui généré sur base du même algo en C#.
 
Testé avec le framework 1.0


 
je plussoie !
 
même si le code généré est identique (comme l'a signalé MagicBuzz), il reste des différences concernant les possibilitées de VB face à C#. en tout cas pour le framework 1.0.
je suis passé vendredi dernier en version 1.1, je n'ai pas encore tout testé...
il aussi vrai que le compilateur C# donne des resultats parfois etonnant face à celui de VB : pour un même algo, le resultat (parfois ! ) est moins rapide en C# qu'en VB ! (toujours sous 1.0).
 
pour en revenir au sujet du topic, je n'ai pas vu de surcharge d'operateur en VB.

Reply

Marsh Posté le 04-06-2003 à 11:08:10    

Ok, merci pour toutes ces réponses...
Donc a priori c'est impossible...
 
C'est dommage quand meme...
 
A+

Reply

Marsh Posté le 04-06-2003 à 11:14:56    

tu peux toujours essayer de traduire l'exemple fournit en C# dans l'aide en VB. tu verras bien ce qu'il va te dire  ;)  
ca te prendra 5 min et tu seras fixé. Si tu le fait, tiens nous au courant.

Reply

Marsh Posté le 05-06-2003 à 08:32:37    

Bon, ben c'etait vite reglé... Il reconnait pas operator+ lors de la redefinition: il me fait une erreur de syntaxe, il aime pas les + dans les noms de fontion.
 
Donc ca marche pas...
 

Reply

Marsh Posté le 05-06-2003 à 09:05:12    

Citation :

pour un même algo, le resultat (parfois ! ) est moins rapide en C# qu'en VB


 
Le compilo C# est récent. VB est développé depuis un certain temps. Ce vient peut etre de là. La priorité est avant tout de créer un compilo qui marche, puis, après, on l'optimisera ... et on justifiera une mise à jour :D


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed