Ich muss eine Reihe von Benutzereingaben in meiner Konsolenanwendung überprüfen, bevor ich meine Methode auslöst und Daten in meine Datenbank speichere.Sie müssen eine Gruppe von Benutzereingaben validieren, bevor Sie eine Methode auslösen. C#
Das Programm kompiliert und rundt ohne Ausnahmen. Aber bei einem falschen Input läuft es immer noch für die anderen drei durch.
Obwohl, was ich wirklich brauche, ist sicherzustellen, dass die 4 Benutzer Einträge korrekt sind, bevor die Methode ausgelöst wird und falls nur eine falsch ist, sollte das gesamte Programm stoppen und beenden.
using System;
using System.Threading;
namespace BarcodeValidation
{
class Program
{
static void Main(string[] args)
{
ReadBarcode();
}
static void ReadBarcode()
{
var barcodes = GetInput();
foreach (var item in barcodes)
{
// something
CheckUserInput(item);
}
}
static string[] GetInput()
{
Console.WriteLine("Please enter 4 products ID, Barcodes, MPN or EAN code:");
string[] barcode = new string[4];
for (int i = 0; i < barcode.Length; i++)
{
barcode[i] = Console.ReadLine();
}
return barcode;
} // end of method here
static void CheckUserInput(string userInput)
{
int msec = 5000;
try
{
if (!(userInput == "F5121" || userInput == "F3111" || userInput == "F8331" || userInput == "F5321"))
{
Console.WriteLine("Enter a valid MPN codes for your products");
Thread.Sleep(msec);
Environment.Exit(0);
}
else
{
switch (userInput)
{
case "F5121":
Console.WriteLine("barcode 1 is =", userInput);
Thread.Sleep(msec);
break;
case "F3111":
Console.WriteLine("barcode 2 is =", userInput);
Thread.Sleep(msec);
break;
case "F8331":
Console.WriteLine("barcode 3 is =", userInput);
Thread.Sleep(msec);
break;
case "F5321":
Console.WriteLine("barcode 4 is =", userInput);
break;
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Tun Sie das nicht? Überprüfen Sie für jeden Eintrag die Benutzereingabe. 'CheckUserInput' wird dann beendet, wenn die Eingabe falsch ist. Was in deinem aktuellen Programm funktioniert nicht? – Default
'bool errorOccurred = false;' => Ersetzen Sie 'foreach' w /' while (errorOccurred == false) 'und setzen Sie' errorOccurred' auf 'true', wenn eine Eingabe ungültig ist? Check ist wieder nach Ihrem Blick, um zu sehen, ob fortfahren oder nicht. –
Welchen Teil Ihres Programms möchten Sie "nicht ausführen"? weil es das Programm beenden würde, wenn mindestens 1 Ihrer Einträge falsch ist, haben Sie dieses Recht bereits. Es wird sofort beendet. Aber wenn alle 4 "CheckUserInput" übergeben, ist das das Ende Ihres Programms, das ist alles, was in "ReadBarcode" passiert ... Was möchten Sie nicht tun, wenn einer von ihnen falsch ist? – Skintkingle