Prévenir les nombres négatifs en C#?
Est-il de code c# qui acceptent seulement les nombres positifs et n'accepte pas les nombres négatifs?
Comme
Console.WriteLine("Write number");
Console.ReadLine();
j'ai lu les tutoriels, mais toujours pas aidé
et maintenant, je n'ai aucune idée de comment prévenir les nombres négatifs.
- Que voulez-vous dire par
prevent
? Vérifier le nombre par vous-même.
Vous devez vous connecter pour publier un commentaire.
Pour le rendre convivial, une boucle est souvent la bonne, qui continue de demander pour l'entrée jusqu'à ce qu'une entrée valide est entré.
TryParse
retournefalse
si une non entrée valide a été entré. Lors de l'entrée valide est entréTryParse
retournetrue
etnumber
contient la valeur. À l'aide deuint
permettra d'éviter les nombres négatifs de saisie.Vous devez vérifier manuellement vous-même...
Il fonctionne par la lecture du numéro, puis de vérifier si son négatif. Si il l'est, il avertit l'utilisateur et la boucle oblige à recommencer.
if (number < 0)
se fait frapper, il re-demande le nombre de nouveau.Quelque chose de différent à
uint.TryParse
serait leint.TryParse(string, NumberStyles, IFormatProvider, out int)
de surcharge qui permet de spécifier même plus ce qu'est une entrée valide devrait ressembler à:La normale
int.TryParse
comprend égalementNumberStyles.AllowLeadingSign
qui est ce que vous ne voulez pas.uint
peut-être pas disponible si il y a des directives strictes pour CLS conforme code.Il y a
uint
mais ce n'est pas ce que vous voulez, car l'utilisateur pourrait tout de même saisir un nombre négatif.Après avoir analyser la chaîne et assurez-vous que c'est un entier, il suffit de prendre la valeur absolue en appelant
Math.Abs()
et vous serez fait.Si vous essayez pour empêcher les utilisateurs d'entrer des nombres négatifs dans les champs de saisie des données, vous avez plusieurs choix.
les périodes.
La façon de gérer cela est différent entre les différents types d'applications -- console, WinForms/WPF ou site web.
Par exemple, sur un ASP.Net page web, vous pouvez utiliser les contrôles de validation pour autoriser uniquement les chiffres entrés. C'est une façon de le faire:
De la Console.ReadLine() ne pas se limiter à ce que l'utilisateur peut entrer sur la ligne de commande. Vous aurez besoin de valider l'entrée de vous-même; sans doute la façon la plus simple pour ce faire est décrite par BoltClock. Mais, vous avez besoin de try - catch son code pour attraper les invalides cast exception dans le cas où la valeur n'est pas un uint.
Ce ne sera pas seulement vous assurer que les utilisateurs d'entrée est un nombre entier, mais aussi qu'il est positif. Sinon, vous devrez effectuer une partie 2 du chèque; tout d'abord, l'utilisateur d'entrer un entier, le deuxième, est que l'entier supérieur à 0.