Avertissement dans Resharper "La valeur de retour de la méthode pure n'est pas utilisée"
J'ai une petite question concernant un avertissement que je reçois de Resharper dans Visual studio sur un projet c# que je suis en train de travailler. L'avertissement est:
" Valeur de retour de la pure méthode n'est pas utilisée"
La méthode où ce qui se passe est comme ci-dessous:
private static bool FilePathHasInvalidChars(string userInputPath)
{
try
{
Path.GetFullPath(userInputPath);//this is where the warning appears
}
catch (Exception e)
{
Log.Error(String.Format(
"The Program failed to run due to invalid characters or empty string value for the Input Directory. Full Path : <{0}>. Error Message : {1}.",
userInputPath, e.Message), e);
return true;
}
return false;
}
Je pense que je sais pourquoi l'avertissement qui se passe.
Je suis en utilisant un Chemin.GetFullPath(chemin d'accès) dans le seul but d'attraper toutes les exceptions à faire avec des caractères non valides. Le chemin d'accès doit être fourni en entrée par l'utilisateur, donc je n'ai pas vraiment utiliser le résultat de la (Chemin d'accès.GetFullPath(userInputPath)). La seule utilisation que j'ai pour elle est sur une case que j'ai pour cette méthode est sur une case que je n'sur la principale méthode pour s'assurer que le chemin d'accès fourni n'est pas vide ou n'ont pas de caractères non valides.
L'endroit où j'ai utiliser la méthode ci-dessus est comme ci-dessous:
if (FilePathHasInvalidChars(inputDirectory))
{
return;
}
Fondamentalement, c'est simplement un point de sortie avant que le programme commence l'exécution à l'aide d'un paramètre non valide.
Je me promenais si cet avertissement serait la cause de tous les problèmes ou si je suis missusing le Chemin.GetFullPath méthode d'une manière qui va me causer des problèmes à l'avenir?
Merci beaucoup,
Jetnor.
source d'informationauteur Jetnor
Vous devez vous connecter pour publier un commentaire.
Nope, qui ne devrait pas poser de problèmes pour vous, car c'est en fait la façon dont vous voulez l'utiliser.
La Resharper conseil dans ce cas est juste un pointeur dans le cas où vous avez oublié de créer une variable qui servent à conserver les données que vous avez récupéré. Puisque vous êtes juste de la validation, et n'en a pas vraiment besoin de ces données, vous devriez être bien.
Edit: Notez que vous pouvez éviter le soupçon, et il est clair que c'est sur le but en utilisant une Resharper commentaire, comme ceci:
Edit #2: SynerCoder est probablement à ce que le droitsur
System.IO.Directory.Exists()
être une meilleure option pour vos propres besoins...Dans votre exemple de code que vous attraper
Exception
qui peut être l'un des suivants:ArgumentException
SecurityException
ArgumentNullException
NotSupportedException
PathTooLongException
mais celui qui s'est levée lorsque le chemin d'accès contient des caractères invalides n'estArgumentException
MSDN.En outre,
vous devriez plutôt utiliser le code suivant, et omettre l'exception de la manipulation:
Vous ne devez pas utiliser votre propre méthode pour vérifier si le chemin d'accès est illégal. Puisque vous êtes à la vérification d'un répertoire (
inputDirectory
), vous devez utiliser le code suivant: