Paramètres optionels

Résolu
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 - 1 août 2006 à 08:28
 fregolo52 - 1 août 2006 à 16:16
Bonjour,

J'ai déclaré des paramètres d'une fonction comme étant optionels mais lorsque j'appelle ma fonction, elle m'impose de renseigner tous les paramètres... pourquoi ?

Exemple de déclaration de fonction avec paramètre optionel :
using

System.Windows.Forms;using

System.ComponentModel;
public

DialogResult fnMsgCr(
String S, [
Optional][
DefaultValue(
"")]
String sProc, [
Optional][
DefaultValue(
false)]
Boolean bYesNo)

-- Pourquoi faire simple quand on peut faire compliquer --

23 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
1 août 2006 à 08:46
les paramètres optionnels n'existe qu'en VB 6 ! et malheureusement en vb.net

en C# on utilise les surcharges.

DialogResult fnMsgCr(String S, String sProc, [Boolean bYesNo) {}

DialogResult fnMsgCr(String S) {
   return fnMsgCr(S, string.Empty, false);
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
3
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 08:50
Merci


Décidément... y a pas à dire... le vb.net est plus évolué que le C#...

-- Pourquoi faire simple quand on peut faire compliquer --
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
1 août 2006 à 08:55
 mais biensûr...

c'est pour ça que C# est case sensitive et pas vb.net
c'est pour ça que C# utilise int? et vb.net Nullable(Of Integer)
c'est pour ça que C# est plus lisible que vb.net
c'est pour ça que C# est strictement objet et pas vb.net...

je continue ou pas ?

nan... sans déconner vb.net est un très bon langage... mais il a un gros défaut... il a garder sa "compatibilité" avec vb6 !






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 09:45
c'est justement ce qui fait sa qualité que n'a pas le C#... désolé mais ce serait trop long à expliquer... vb6 n'avait pas que des défauts... il était mono instance c'est vrai... et pas puissant c'est vrai.. mais ajouter les avantages de vb6 à vb.net n'est pas un défaut

l'avantage majeur du vb est qu'en 30 seconde on fait une appli qui tourne bien et qui fait beaucoup de choses... on développe 3 fois plus vite en vb.net qu'en C#...

mais bon... les gouts et les couleurs... lol

-- Pourquoi faire simple quand on peut faire compliquer --
0

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

Posez votre question
gcorbineau Messages postés 143 Date d'inscription vendredi 28 janvier 2005 Statut Membre Dernière intervention 25 octobre 2006
1 août 2006 à 10:02
Je ne suis pas d'accord avec eldim sur le fait que C# est moins bien que VB6 et VB.NET. Il suffit juste de connaitre le langage et on developpe aussi vite en C# qu'en VB.NET.
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 10:13
ben non on peut pas... exemple : en vb.net on tape "try" et y a le "catch" et le "end try" qui viennent se greffer... et c'est le cas pour beaucoup de choses...

et beaucoup de fonctions (grace au vb6) sont intégrées (et il n'y a pas déquivalent en C#)

-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 10:37
Pas d'accord non plus avec eldim non plus!
Pour ce qui est de la rapidité de codage, puisque tu en parles, Visual Studio n'a jamais été autant bien conçu. Avec un simple raccourci (qu'on peut même peut-être customizer) on peut insérer n'importe quel code de base (comme un try-catch).
Et s'il n'existe pas par défaut, on peut le créer soit même en faisant un snippet. Autrement dit, on peut insérer des centaines de lignes de code si on a envie, juste en un ou deux cliques, ou avec un raccourci.
Si une grosse partie des gens qui étaient en VB6 se sont tournés vers VB.NET ou C#, c'est qu'il (VB6) avait quand même des problème...
Mais bon, si t'es fan de VB6, on ne pourra pas te convaincre...

<hr size="2" />VC# forever
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 10:47
Comment tu fais ça ?

-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 10:55
Pour un try-catch tu fais try + TAB
Pour un try-finally, tu fais tryf + TAB

Mais y'en a des tonnes d'autres, et si ça te suffit pas, tu peux créer les tiens....

<hr size="2" />VC# forever
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 10:59
Merci


et comment tu les crées ?

-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 11:03
Menu Tools/Code Snippet Manager

<hr size="2" />VC# forever
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 11:17
Merci,


je vai peut-être revoir ma position dans ce cas en mettant de l'eau dans mon vin lol...


par contre, perso je ne trouve pas très pratique les "}" à la place des "End xxx" car ça fait un peut fouilli...


Mais gros avantage du C# c'est qu'on n'a pas besoins d'enregistrer les DLL... et que l'on peut créer des opérateurs... choses que l'on ne peut pas faire (à ma connaissance en vb.net)

-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 11:23
C'est une question d'habitude pour les accolades...
Une fois qu'on les utilises règulièrement, ça ne dérange plus (je me disais la même chose que toi quand j'ai commencé le C# , je venais aussi de VB6 et je trouvais les '{'  bizarre! ).

<hr size="2" />VC# forever
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 11:30
J'en suis réduit à mettre les "end ..." en commentaire lol
Sinon, en ce qui concerne les perfs, j'ai traduit en vb.net 95% des projets que j'ai trouvé en C# y compris de sourcesforges(les seuls que je n'ai pas pu traduire contenaient des opérateurs personnalisés) et j'ai fait des tests de durée d'exécution... et les 2 ont exactement les mêmes perfs... (merci le CLR)

-- Pourquoi faire simple quand on peut faire compliquer --
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 11:37
Sauf erreur y'a des traducteurs qui peuvent faire ce genre d'opérations, pas besoin de se les taper à la main .
Pour les performences, c'est relativement logique étant donné qu'ils sont tout les deux traduits en MSIL (comme tous les languages .NET.....)

<hr size="2" />VC# forever
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 11:51
Les traducteurs ont pas mal de lacunes... que ce soit dans un sens ou dans l'autre...

-- Pourquoi faire simple quand on peut faire compliquer --
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
1 août 2006 à 13:15
en vb.net 2, il est possible de faire de la surcharge d'opérateur... c'est justement l'une des nouveautés.

ce qu'il faut savoir... c'est que je suis MVP C#... mais en usage professionnel, je pratique aussi biern VB6, VB.net que C#... (windows forms, asp.net et asp3)... donc les avantages et inconvéniants de chaque langage ne me sont pas inconnu

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 13:47
tu peux me montrer comment tu fais cette surcharge en vb.net ?

-- Pourquoi faire simple quand on peut faire compliquer --
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
1 août 2006 à 15:18
Public Shared Operator - (string param1, string param2)


...


End Operator






Sébastien FERRAND
(

blog
)
Consultant Indépendant
[Microsoft MVP Visual C#]
0
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
1 août 2006 à 15:29
ah oui ça marche même en vb.net merci

-- Pourquoi faire simple quand on peut faire compliquer --
0
Rejoignez-nous