Supprimer les paramètres en C #?
Après avoir lu sur stackoverflow que, dans le cas de vérifier le format d'un DateTime vous devez utiliser DateTime.TryParse. Après avoir essayé quelques expressions régulières, ils semblent être longue et méchant à la recherche de couvrir beaucoup de la mise en forme.
Mais TryParse implique un "paramètre" et depuis je veux juste faire une validation du format de vérifier que je n'ai pas le résultat réel.
Donc je suis parti avec une variable qui contient la "sortie" du résultat et je suis pour ne rien faire avec elle. Est-il un moyen donc je n'ai pas à faire d'un paramètre de sortie?
Donc je me débarrasser de cet avertissement et arrêter d'avoir une variable qui volent autour.
source d'informationauteur chobo2
Vous devez vous connecter pour publier un commentaire.
Nope. J'avais l'envelopper dans une méthode quelque part pour garder le bruit de l'écoulement principal:
Je ne dis pas que vous avez réellement ne cela, mais vous pourrait utiliser une seule classe d'assistance pour rendre cela facile pour tous paramètres de sortie:
Ensuite, vous pouvez appeler le:
C'est horrible, utilise un public mutable champ, et si votre demande est également avec l'exécution de code malveillant, on donne un code d'accès à la dernière valeur que vous avez analysé... mais cela devrait fonctionner 🙂
Pas. Vous ne pouvez pas vous débarrasser de la variable, mais vous ne devriez pas obtenir un avertissement du compilateur.
En passant une variable comme
out
est "l'aide" de la variable. Le compilateur de ne pas émettre un avertissement à cause de cela.Avec C#7 (depuis août 2016), vous pouvez utiliser le var construire, puis il suffit d'ignorer les nouvelles de la var dans le code suivant.
Si vous êtes en utilisant .NET 3 et ci-dessus, vous pouvez toujours créer une méthode d'Extension?
[Édité pour renommer le nom de la méthode à un plus approprié]
TryParse
est une meilleure option. C'est juste une variable qui est gaspillé. D'autres options incluent l'utilisation de laConvert.ToDateTime()
à l'intérieur d'un bloc try-catch. Mais encore une fois, ne serait pas efficace parce que les blocs try-catch sont destinés à être lourd. L'option suivante est regex. C'est une meilleure solution. Je suppose que cela vous donne le résultat instantanément que par rapport aux autres.Vous pouvez très bien envelopper la méthode comme Kim Gräsman dit...