2016-11-15 2 views
0
Schließen

Ich versuche, einen Dialog in C# Konsole zu machen ... und ich versuche, es der Benutzer die Frage zu stellen zu beantworten:Stopp Konsolenfenster von

„sagen Sie mir, das Datum und die Zeit“

oder so ähnlich. Das ist mein Code:

resp3 = Console.ReadLine(); 
if (resp3 == "tell me the curent date and time") 
{ 
    Console.Write(string.Format("{0:HH:mm:ss tt}", DateTime.Now)); 
} 

Nachdem es die Antwort auf die Konsole schreibt, schließt es einfach.

+0

Ihr Code funktioniert für mich. Was ist das Problem? –

+2

Konsolen schließen, wenn ihre Ausführung abgeschlossen ist, Sie benötigen einen blockierenden Aufruf, um sie vom Verschwinden zu halten, wie 'Console.ReadLine();' –

+1

Denken Sie daran: 'sagen Sie mir das aktuelle Datum und die Uhrzeit' und' Sagen Sie mir das aktuelle Datum und Zeit sind ** NICHT ** gleich. –

Antwort

0

die Grundstruktur zu halten, fügen Sie einfach Console.ReadLine() am Ende

resp3 = Console.ReadLine(); 
    if (resp3 == "tell me the curent date and time") 
    { 
     Console.Write(string.Format("{0:HH:mm:ss tt}", DateTime.Now)); 
    } 
    Console.ReadLine(); 

Dies stellt sicher, dass das Programm Pause am Ende, ob der richtige Eingang eingegeben wurde.

+0

ja .. ich denke, in dem ursprünglichen Code ist ein Problem .. Ich meine .. wenn ich diesen Code in einem anderen Projekt versuche, funktioniert es ... wenn ich es im Originalcode benutze, stürzt es ab ... danke dir;) – doddo26

3

Der Code abgeschlossen ist, weiterhin folgende hinzufügen müssen:

Console.ReadLine(); 
+0

yhea das ist Logik: D mein Problem war ... "die Konsole zeigt mir nicht das Datum und es schließen nach einigen Sekunden Entschuldigung für schlechtes Englisch ..: – doddo26

0

Sie könnten den Code ein wenig sauberer machen und vielseitig:

var phrase = "..."; 
if(String.Compare(Console.ReadLine(), phrase, true) == 0) 
    Console.WriteLine(DateTime.Now.ToString("0:HH:mm:ss tt"); 

Console.ReadLine(); 

Der Vergleichsfall Empfindlichkeit abweichen, so es wird case insensitive. Sie können auch Ihr Format direkt an das Ende DateTime, wenn Sie die ToString verwenden. Es hat die gleiche Formatierung wie String.Format. Auch die wird am Ende als Sajeetharan bezeichnet.