2015-11-05 2 views
2

Я строю календарь, и я хочу установить важные встречи красным, остальные белые. Как я могу это достичь? Когда я устанавливаю цвет для последней строки красный, не важные встречи также красные. Мой код:Установить «Важное» -значение красного, другого белого

string important; 
Console.Write("High priority? input yes or no: "); 
important = Console.ReadLine(); 

if (important == "yes" || important == "Yes") 
{ 
    important = "Important"; 
} 
else 
{ 
    important = "Normal"; 
} 

Console.Write("Priority: " + important); 
+0

, чтобы иметь дело с такими «да» или «ДА», просто переформатировать строки, чтобы содержать только капитал или только строчные буквы и сравнить его тогда – mikus

+0

@mikus: вместо * переформатирования строки * просто сравните его как 'String.Equals (« yes », important, StringComparison.OrdinalIgnoreCase)' –

+0

ну, ты прав, в C# его лучший вариант, я думал об общем правиле :) – mikus

ответ

2

Если изменить ForeGroundColor к Red, вы должны сбросить его Gray, который по умолчанию цвет. Вы можете использовать этот код

Console.Write("High priority? input yes or no: "); 
string important = Console.ReadLine(); 

if (important.Equals("yes", StringComparison.InvariantCultureIgnoreCase)) 
{ 
    Console.Write("Priority: "); 
    Console.ForegroundColor = ConsoleColor.Red; 
    Console.Write("Important");   
} 
else 
{ 
    Console.ForegroundColor = ConsoleColor.White; 
    Console.Write("Priority: Normal"); 
} 
Console.ResetColor(); //default 
+0

Проверьте мой ответ. Это почти то же самое, но мои работы без 'important.Equals'. Зачем мне это нужно? – user5462581

+2

@ пользователь5462581 главный отличие - * сбросив цвет *. 'important.Equals' с' StringComparison.InvariantCultureIgnoreCase' позаботится о «да» в любом случае - ДА, да, yE и т. д. –

+0

Приятно знать. Благодарю. – user5462581

1

Использование Console.ForegroundColor Как это: ответ

important = Console.ReadLine(); 

Console.Write("Priority: "); 

if (important == "yes" || important == "Yes") 
{ 
    Console.ForegroundColor = ConsoleColor.Red ; 
    important = "Important"; 
} 
else 
{ 
    Console.ForegroundColor = ConsoleColor.White; 
    important = "Normal"; 
} 
Console.Write(important); 
+0

Когда я делаю так вот сообщение «Приоритет: [...]» в последней строке также становится красным. Мне нужен только выходной сигнал «важный» красный, а выход «нормальный» - белый. Это ключ. – user5462581

+0

@ user5462581, поэтому установите цвет перед выдачей нужного вам файла - если вы выведете '' Приоритет: [...] "" логически, вся эта строка применяет выбранный цвет – Grundy

+0

@ user5462581 ... Проверьте мой обновленный ответ. –

0

Check Arghya C в.

Старый код:

string important; 

     Console.Write("\n\nIs the meeting high priority?\n Input \"Yes\" or \"No\": "); 

     important = Console.ReadLine(); 

if (important == "yes" || important == "Yes") 
     { 
     Console.Write("\nPriority: \t"); 
     Console.ForegroundColor = ConsoleColor.Red; 
     Console.Write("Important"); 
     } 
     else 
     { 
     Console.Write("\nPriority: \t"); 
     Console.ForegroundColor = ConsoleColor.White; 
     Console.Write("Normal"); 
     } 
+0

Я действительно не вижу существенной разницы между вашим решением и моим ответом! –

+0

Вы видите это сейчас? Я не изменяю значение переменных. Я пишу «Важно» с помощью 'Console.Write'. Вы изменяете значение строки и выводите значение. – user5462581

+0

Ну, почему это должно быть вопросом, либо изменить цвет переменной или вашей? вы повторяете 'Console.Write' дважды в' if' и в 'else'. это не очень хорошая идея. –

Смежные вопросы