Parametres optionels d'une fonction

cs_jul974 Messages postés 3 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 2 août 2006 - 2 août 2006 à 13:28
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 - 2 août 2006 à 16:03
Bonjour,

J'utilise une dll dans une page ASP.

Lorsque j'appel une des fonctions de ma dll ,par exempleVersion(), tout va bien ,elle m'affiche bien la version de la dll.

Mais losque je fais appel à une autre fonction me permettant d'effectuer un calcul ca devient galére.
Cette fonction à 18 parametres cependant 15 sont optionnels .
Ma dll a une classe qui s'appelle  Calculs(). et elle possede une methode qui s'appelle Data.qui renvoie un double.

<code>
Calculs f = new Calculs();//j'instancie ma classe

//je declare mes variables obligatoires

string nom= calcul;

double temps=123;

double angle=30;

//je fais appel à ma methode contenu dans ma classe avec mes parametres obligatoires mais je ne veux indique que les autres sont optionnels .

double resultat = f.Data(ref  nom, ref  temps , ref angle,  argument optionnel,   argument optionnel.....     );

Je voudrais savoir quelle est  la syntaxe en C# pour indiquer à ma fonction les parametres optionnels .

Merci

5 réponses

bernie666 Messages postés 427 Date d'inscription mercredi 1 octobre 2003 Statut Membre Dernière intervention 29 janvier 2008 1
2 août 2006 à 13:41
    Salut ta dll c'est toi qui la développé ? si oui refait une signature pour ta fonction avec moins de parametre, sinon tu peux creer une autre classe intermédiaire pour encapsulé la methode de ta dll exemple

MyClass c = new MyClass();

c.data(paramObligatoire1 , paramObligatoire2, paramObligatoire3);

et dans MyClass =>

tu fait reference a la dll

public void data(ref myParam1, ref myParam2 ...){
    //appel de ta dll et tu pose des nulls au parametres optionnels
    maDll.Data(myParam1,myParam2,null,null,null,null,null);
}
0
cs_jul974 Messages postés 3 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 2 août 2006
2 août 2006 à 15:44
salut

Merci mais cela ne resoud pas mon probléme car en fait je suis censé mettre cette application sur le web .
En gros il y aura 18 inputs sur la page web ce qui veut dire que je devrait faire 18  methodes differentes.

en fait ce que je veux faire c juste controler si l'input à été remplie si oui je  passe le contenu  de l'input   à ma dll sinon je lui passe un null ou qu'elle chose dans le genre .

j'ai essayer ref null pour les parametres optionnels mais ca marche pas.

Si vous avez des  suggestions.....
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
2 août 2006 à 15:49
Utilise le mot clef params.

::|The S@ib|:: MVP C#.NET
0
cs_jul974 Messages postés 3 Date d'inscription jeudi 14 octobre 2004 Statut Membre Dernière intervention 2 août 2006
2 août 2006 à 15:56
euh ...

tu veux dire qu'a la place de mes argument optionnels je met:

double resultat = f.Data(ref  nom, ref  temps , ref angle,   params null ,params null...     );

Peux tu m'en dire un peu plus, je suis debutant en C#.
0

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

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
2 août 2006 à 16:03
Le mot clé param dans la signature de ta fonction de permet de lui passer "n" paramètre. Mais je pense que la meilleure approche serait plutôt de passer une classe metier en paramètre, cette classe contenant la liste de tes 18 propriétés.


voici tout de meme un lien vers la msdn sur params :



http://msdn.microsoft.com/library/en-us/csref/html/vclrfParams.asp?frame=true



::|The S@ib|:: MVP C#.NET
0
Rejoignez-nous