ShilpaKumari Ответов: 5

Преобразование строки в систему.ConsoleColor


Эй, я написал код в консольном приложении, в котором пользователь должен ввести имя цвета, и когда он нажмет enter и напишет что-то forground color, это будет цвет ввода пользователем.

Console.WriteLine("Enter the Name of Color in Which do You Want to Print");
                  string str = Console.ReadLine();

                  Console.ForegroundColor = (ConsoleColor) str;


но это дает ошибку Error: - не удается преобразовать тип 'string' в ' System.ConsoleColor'
любая идея, как я могу преобразовать строку в систему.ConsoleColor

5 Ответов

Рейтинг:
37

CPallini

Шилпакумарио писал:
Приставка.ForegroundColor = (ConsoleColor) str;

Как вы легко можете обнаружить, читая документация[^], вы должны использовать:

(ConsoleColor) Enum.Parse(typeof(ConsoleColor), str);

:)


Рейтинг:
22

alrosan

Console.WriteLine("Enter the Name of Color in Which do You Want to Print");
           string str = Console.ReadLine();
           Console.ForegroundColor =(ConsoleColor) Enum.Parse(typeof(ConsoleColor), str,true);
           Console.Read()


Рейтинг:
20

RaviRanjanKr

Вы можете решить эту ошибку, используя свойство Enum.Parse посмотрите, как оно будет работать для вас

Console.ForegroundColor = (ConsoleColor)Enum.Parse(typeof(ConsoleColor), str);
 // Parse is used to convert value to equivalent enumerated object.


Рейтинг:
2

Nish Nishant

Хотя несколько человек (4 до сих пор) ответили на ваш вопрос, вам лучше не делать этого таким образом. Когда вы просите пользователей ввести название цвета, могут возникнуть опечатки. Лучшим вариантом было бы дать им список цветов и попросить их выбрать из этого списка. Я предполагаю, что фрагмент кода, который вы показали, был предназначен для тестирования и что ваш фактический код имеет какой-то правильный пользовательский интерфейс.


Рейтинг:
1

Sandeep Mewara

Ну, есть различные способы получить цвет для данной строки. Из них:

ColorConverter conv = new ColorConverter();
conv.ConvertFromString("Red");

попробуй!


MDNadeemAkhter

Класс ColorConverter относится к системе.Рисование пространства имен и, как я знаю, в консольной системе классов.Пространство имен чертежа по умолчанию недоступно. вот почему не очень хороший ответ