4

Ayant utilisé des paramètres optionnels dans quelques classes ici et là, je commence à les détester énormément pour les problèmes qu'ils causent dans certains cas avec une résolution de surcharge, c.-à-d. aux conflits de signature, ainsi que des problèmes d'invocation dynamique en ce qui concerne le nombre d'arguments de méthode.Trouver tous les paramètres optionnels et les supprimer

Comment puis-je effectuer une recherche dans tous les fichiers de mon projet Visual Studio IDE (2010) et localiser tous les paramètres optionnels? Y aurait-il une regex intelligente que je pourrais utiliser peut-être? Ou peut-être en utilisant une ancienne version de Visual Studio où les paramètres optionnels ne sont pas supportés? J'essaie d'éviter les tracas de l'analyse manuelle des fichiers dans le projet car il peut être fastidieux et sujet aux erreurs. Merci!

Répondre

6

Votre meilleur pari peut être la réflexion - il devrait être assez facile de faire une boucle sur tous les membres de tous les types où ils sont des méthodes et ils ont au moins un paramètre optionnel.

Cela ne ferait pas la substitution pour vous, mais pourrait vous donner une liste de tous les membres fautifs.

Quelque chose comme:

foreach (Type tp in currentAssembly.GetTypes()) 
    foreach (MethodInfo func in tp.GetMethods()) 
     if(func.GetParameters().Any(p=>p.IsOptional)) 
      Console.WriteLine(func.ToString()); 
1

Bien que ce ne soit probablement pas la meilleure façon, j'ai tendance à regarder Class View dans Visual Studio. Les types qui sont indiqués entre crochets sont les paramètres optionnels