Parametres optionels d'une fonction

Signaler
Messages postés
3
Date d'inscription
jeudi 14 octobre 2004
Statut
Membre
Dernière intervention
2 août 2006
-
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
-
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
A voir également:

5 réponses

Messages postés
427
Date d'inscription
mercredi 1 octobre 2003
Statut
Membre
Dernière intervention
29 janvier 2008
1
    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);
}
Messages postés
3
Date d'inscription
jeudi 14 octobre 2004
Statut
Membre
Dernière intervention
2 août 2006

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.....
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
21
Utilise le mot clef params.

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

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#.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
21
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