Самоучитель себя C# Я нашел «вызов для кодирования» для практики, но мне сложно понять, как выполнить одно из требований.Консольное приложение - изменение определенного цвета текста внутри строкового массива
Это абсолютно необходимо сделать в приложении C# Console - просто выбрасывать это из-за того, что я уже провел свое исследование, и большинство ответов, которые я нашел, «использовали это вместо этого».
Задача довольно легко достичь, это текстовая версия деятельности Mablibs где вы попросить пользователя ввести имя существительное, глагол и т.д.
Что я сделал до сих пор было создание двух строковых массивов, один, содержащий различные типы слов он собирается попросить пользователя:
string[] prompt = {"noun","verb","adverb"} //this contains 12 strings
и другой массив, содержащий входные данные пользователей, так как я собираюсь использовать цикл для получения их входы, что-то похожее на это:
For (int i = 0; i < userAnswer.Length; i++)
{
Console.Write("Please enter a/an " + prompt[i] + ": ");
userAnswer[i] = Console.ReadLine();
}
И, конечно, я набрал всю активность, чтобы отобразить входные данные пользователей.
НО, я должен подчеркнуть изменения и это говорит либо:
Подчеркнуть изменения - что я продолжал видеть, что это не возможно в консоли App.
Все капиталы - что было бы легким путем, но я хочу узнать что-то другое.
Жирный изменения - я побежал в StringBuilder и < б> </b> в основном для этого и пытался это самостоятельно, но не смог заставить его работать.
Различный цвет - Я знаю, что могу использовать Console.ForegroundColor = ConsoleColor.Magenta ;, но я только хочу изменить цвет ввода пользователем. Я видел много способов «сделать это», но каждый раз, когда я пробовал, он менял бы все.
Если кто-то может оказать некоторую помощь, я бы очень признателен этому.
Спасибо.
EDIT:
Пример того, что я пытаюсь достичь
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();
}
Тогда давайте говорить, что пользователь ввел: птица, плавать, 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
Окончательный выход : A bird любит много есть. Он любит плавать в облачно глядя воды.
Я надеюсь, что это поможет вам понять.
Вы пробовали 'Console.ForegroundColor = ConsoleColor.White;' после WriteLine для цветной линии ответа? – JohnG
Вам нужно всего лишь 6 отдельных вызовов Console.Write(), чтобы вы могли изменить свойство ForegroundColor. Очень просто. –