[C#]Optimisation d'une methode

Fermé
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 - 15 juil. 2004 à 11:33
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 - 15 juil. 2004 à 12:57
Salut tout le modne,
juste une petit question sur l'optimisation d'une methode, est il plus efficace de faire:

if (!mystring.startwith("Debut"))
{return false}
if (mystring!=Debut.alpha && mystring !=debut.beta,...)
{
return false}

else return true


ou bien alors, sans le if du startwith?

Merci de votre avis :o)

.  .  Dieu a inventé le chat
\_/  pour que l'homme puisse caresser le tigre
A voir également:

2 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
15 juil. 2004 à 11:53
ça dépend: quelle sera la proportion de chaîne commençant par "Debut" en fonctionnement normal ?

Je pense que c'est à prendre en compte pour le choix.
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
15 juil. 2004 à 12:33
Difficile a dire, environ 10% je pense...
Le probleme c'est qu'il faut que je sorte le plus vite possible de cette fonction, mais tester 2 fois la meme chaine sur des criteres differents certes mais voisins me parait bizzare...

.  .  Dieu a inventé le chat
\_/  pour que l'homme puisse caresser le tigre
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659 > teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011
15 juil. 2004 à 12:43
mmm...

Si tu as beaucoup alpha, beta, etc. ça serait peut-être mieux d'utiliser une Hashtable.

Dans le constructeur, tu créé ta hashtable:
Hashtable goodValues = new Hashtable();
goodValues.Add(Debut.alpha,0);
goodValues.Add(Debut.beta,0);
etc.

puis dans la méthode:
if (!goodValues.ContainsKey(mystring)) { return false; }
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793 > teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011
15 juil. 2004 à 12:57
J'y ai bien pense, mais j'en ai que 4 (max 5), donc je gagnerai rien et je perdrai en lisibilite je pense...

.  .  Dieu a inventé le chat
\_/  pour que l'homme puisse caresser le tigre
0
bonjour, de la même manière j'ai une question similaire. Que vaut-il mieux faire entre

if(a==2)
{
if(b==3)
{
if(c==4)
blabla
}
}

ou

if(a==2 && b==3 && c==4) blabla

d'un point de vu lisibilité la 2e solution me parait meilleure mais d'un point de vue temps de calcul ?

(je m'étais posé cette question lors d'un prgm en Matlab)

merci
0
teebo Messages postés 33491 Date d'inscription jeudi 14 octobre 2004 Statut Modérateur Dernière intervention 24 février 2011 1 793
15 juil. 2004 à 12:31
Ben la comme tu traites differentes variables, ca depend de la frequence du a=2...

.  .  Dieu a inventé le chat
\_/  pour que l'homme puisse caresser le tigre
0