Vérification De La Console.ReadLine()!=null
j'ai fais une commande pour mon application reposant, et la figure, j'ai un problème lorsque je vérifie de la Console.ReadLine!=null
---Code---
string input = Console.ReadLine();
if(input!=null)
{
SomeFunction(input);
}
---Fin Du Code---
dans SomeFunction() j'ai divisé cette chaîne, donc par exemple:
Console.WriteLine(input[0]);
donc Problème est:
Il fonctionne si l'utilisateur appuie sur entrée à la fois. Mais si l'utilisation n'est que de nouveau, je suis une exception:
Que [0] n'existe pas.
input[0]
est le premier char de l'entrée- qu'entendez-vous par nouveau ?
- input[0] est le premier char de l'entrée --- pensé que. mais il n'est pas changer le problème. le problème est que j'obtiens une exception après un certain temps de console fonctionne correctement de cette façon.
- si vous frappez <RETOUR>, sans aucun apport de la longueur de la chaîne est de 0 de sorte que vous ne peut pas obtenir le premier caractère d'une chaîne vide
- qu'entendez-vous par nouveau ? Une fois de plus, je veux dire. si u exécuter ce SI nouveau. elle retourne true, avec exactement la même entrée (si l'utilisateur appuie sur entrée)
- si vous frappez <RETOUR>, sans aucun apport de la longueur de la chaîne est de 0 de sorte que vous ne peut pas obtenir le premier caractère d'une chaîne vide ----mais il fonctionne très bien si u exécuter ce bloc une fois. et nt exécuter Le SomeFunction()
- Il n'est pas clair comment l'exécution du bloc plusieurs fois. Entendez-vous le redémarrage de l'application, en utilisant le débogueur pour déplacer la ligne en cours, est-il une boucle que vous n'êtes pas montrer à votre question ou autre chose?
- Ah oui Désolé. j'ai trouvé une solution pour mon problème.
while(true) { string input = Cosnole.ReadLine(); if(input!=null) { Console.WriteLine(input[0]); } }
alors pourquoi il ne me confondre: 1) Quand u ont la première boucle en cours d'exécution. il vérifie si la valeur est nulle. il donne à votre vrai. que (vrai)entrée!=null mais quand la boucle exécutée, cette ligne deuxième fois, c'était en (fausse)d'entrée!=null, donc il m'a confondu la SOLUTION: "si(l'entrée.Longueur == 0) " c'était aussi simple que ça. désolé pour la question stupide:)
Vous devez vous connecter pour publier un commentaire.
Quand vous frappez
ENTER
,Console.ReadLine
retourne videstring
. Il ne renvoie pas null. Utilisationstring.IsNullOrEmpty
à vérifier au lieu.Selon la documentation il sera de retour null uniquement si vous appuyez sur
CTRL + Z.
Merci Tous!
j'ai pensé que je peux juste vérifier si la longueur de la chaîne est de 0.
assez simple. mais
fonctionne aussi bien. chaque jour, apprendre quelque chose de nouveau. merci pour votre aide!
Au lieu de simplement vérifier null, essayez de vérifier si elle est vide ou null à l'aide de Chaîne de caractères.IsNullOrEmpty parce que, quand vous n'avez pas de quoi que ce soit entrée et appuyez sur
Enter
, vous obtenez une chaîne vide qui résulte en uneMise à jour de votre code complet doit être comme suit