Selbstlernend C# Ich habe eine "Coding Challenge" für die Praxis gefunden, aber es fällt mir schwer zu verstehen, wie man eine der Anforderungen erfüllt.Konsolenanwendung - Ändern der spezifischen Textfarbe in einem String-Array
Es muss unbedingt in der C# -Konsolenanwendung gemacht werden - ich werfe das da draußen hin, weil ich meine Nachforschungen gemacht habe und die meisten Antworten, die ich gefunden habe, waren "benutze das stattdessen".
Die Herausforderung ist recht einfach zu erreichen zu, es ist eine Mablibs Textversion Aktivität ist, wo Sie den Benutzer zur Eingabe bitten um ein Substantiv, Verb usw.
Was ich bisher zwei String-Arrays getan hat erstellen, die verschiedenen Arten von Wörtern ein, es wird bitten, den Benutzer enthält:
string[] prompt = {"noun","verb","adverb"} //this contains 12 strings
und ein anderes Array, das die Benutzer Eingang enthält, da werde ich ein verwenden, um Schleife zu erhalten ihre Eingaben, etwas ähnliches wie folgt aus:
For (int i = 0; i < userAnswer.Length; i++)
{
Console.Write("Please enter a/an " + prompt[i] + ": ");
userAnswer[i] = Console.ReadLine();
}
Und natürlich tippte ich die ganze Aktivität aus, um dann die Benutzereingaben anzuzeigen.
ABER, ich muss die Änderungen hervorheben und es sagt, entweder zu:
die Änderung Unterstrichen - was ich sehen gehalten, dass diese in Console App nicht möglich ist.
Alle Hauptstädte - was wäre die einfache Route, aber ich möchte etwas anderes lernen.
Bold die Änderungen - ich in String lief und < b> </b> vor allem für diese und versuchte es auf meinem eigenen, war aber nicht in der Lage, es zu bekommen zu arbeiten.
Eine andere Farbe - Ich weiß, ich kann Console.ForegroundColor = ConsoleColor.Magenta; verwenden, aber ich möchte nur die Farbe der Benutzereingabe ändern. Ich sah viele Möglichkeiten, "es zu tun", aber jedes Mal, wenn ich es versuchte, würde sich alles ändern.
Wenn jemand Hilfe bieten könnte, würde ich das wirklich zu schätzen wissen.
Danke.
EDIT:
Ein Beispiel dafür, was ich versuche,
string[] answerHolder = {"","",""}; //MY originaly code has 13, but I am doing 3 to write it out faster
string[] prompt = {"noun", "verb", "adjective"};
Console.Readline("Help me finish the story:");
Console.Readline("A <noun> likes to eat a lot. It likes to <verb> in the <adjective> looking water. ");
//then it will ask the user to enter a noun, verb, and adjective
for(int i = 0; i < answerHolder.Length; i++)
{
Console.Write("Please enter a/an " + prompt[i] + ": ");
answerHolder[i] = Console.ReadLine();
}
Dann lassen Sie uns sagen, dass der Benutzer eingegeben zu erreichen: vogel, schwimmen, cloudly
//Then I want to display it back but change the color of each
//element that was stored inside answerHolder to emphasize what they entered
Console.Writeline("A {0} likes to eat a lot. It likes to {1} in the {2} looking water.", answerHolder[0], answerHolder[1], answerHolder[2]);
//Code to change color or bold
Endausgabe : A Vogel isst gerne viel. Es mag schwimmen in der cloudly suchen Wasser.
Ich hoffe, dass Sie das verstehen.
Haben Sie 'Console.ForegroundColor = ConsoleColor.White;' nach der WriteLine für die farbige Antwortzeile versucht? – JohnG
Sie benötigen nur 6 separate Console.Write() - Aufrufe, sodass Sie die ForegroundColor-Eigenschaft ändern können. Kinderleicht. –