Я новичок в C# и обладаю базовыми знаниями других языков. И я придумал эту проблему:
public void startupMessage(string appTitle, string (((color))))
{ V--------V
Console.ForegroundColor = ConsoleColor.(((color)));
}
Я думаю, что одна из проблем заключается в том, что второй параметр должен быть чем-то другим, кроме строки. Но я не уверен.
Почему color - это string, а не ConsoleColor?
Лучше сначала прочитать документация, прежде чем спрашивать
@GiladGreen Не знаю, что искать.
@PatrickHofman Потому что я не хочу вызывать startupMessage с ConsoleColor.Blue в качестве параметра. Я просто хочу "Синий". Dmigo отлично ответил на мой вопрос в своем втором решении, используя Enum.Parse.





Я вижу два возможных решения проблемы:
Во-первых, использовать ConsoleColor в качестве типа аргумента:
public void startupMessage(string appTitle, ConsoleColor color)
{
Console.ForegroundColor = color;
}
Во-вторых, нужно проанализировать аргумент:
public void startupMessage(string appTitle, string color)
{
Console.ForegroundColor = (ConsoleColor) Enum.Parse(typeof(ConsoleColor), color);
}
Поскольку наши ответы в основном одинаковы, я удалил свой и проголосовал за ваш. Похоже, ты мог бы использовать репутацию больше, чем я.
Я попытался проголосовать за ваш @zohar, это был первый.
@ZoharPeled Пожалуйста, отметьте как дубликат. Нет причин иметь еще один дубликат Enum.Parse на этом сайте
Потрясающие! Это сработало! Решение 2 - это именно то, что я хотел узнать! Вероятно, не так много нужно для этого проекта, можно было бы легко использовать решение 1. Но решение 2 отлично ответило на мой вопрос. Спасибо.
Это не точный дубликат @Camilo, есть выбор аргумента в параметре или приведение строки к перечислению.
@CamiloTerevinto на самом деле, этот вопрос не является точной копией. Из одного только вопроса неясно, хочет ли OP анализировать значение перечисления из строки или просто интересно, что передать в качестве цвета. Однако в своем комментарии к моему ответу ОП пояснил, что да, это правильный дубликат.
@JeremyThompson OP, упомянутый в другом ответе, что они хотели, так что это дубликат
@ZoharPeled Тогда либо близко как неясно, либо как дубликат, по-прежнему нет причин для ответа.
@CamiloTerevinto Пожалуйста, позвольте мне решить для себя, хочу ли я ответить на вопрос или проголосовать за закрытие. ИМХО, нет ничего плохого в том, чтобы отвечать на повторяющиеся вопросы, и я знаю, что некоторые из высокопоставленных членов согласны с этим мнением. Джефф Этвуд даже писал об этом в блоге.
Возможный дубликат Как мне преобразовать строку в перечисление в C#?