Вызов функции1 с аргументами функции2

Я новичок в C# и обладаю базовыми знаниями других языков. И я придумал эту проблему:

public void startupMessage(string appTitle, string (((color))))
{                                               V--------V
    Console.ForegroundColor = ConsoleColor.(((color)));
}

Я думаю, что одна из проблем заключается в том, что второй параметр должен быть чем-то другим, кроме строки. Но я не уверен.

Возможный дубликат Как мне преобразовать строку в перечисление в C#?

Camilo Terevinto 16.04.2018 13:47

Почему color - это string, а не ConsoleColor?

Patrick Hofman 16.04.2018 13:49

Лучше сначала прочитать документация, прежде чем спрашивать

Gilad Green 16.04.2018 13:55

@GiladGreen Не знаю, что искать.

m0nsterr 16.04.2018 14:05

@PatrickHofman Потому что я не хочу вызывать startupMessage с ConsoleColor.Blue в качестве параметра. Я просто хочу "Синий". Dmigo отлично ответил на мой вопрос в своем втором решении, используя Enum.Parse.

m0nsterr 16.04.2018 14:08
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
99
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я вижу два возможных решения проблемы:
Во-первых, использовать 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 Peled 16.04.2018 13:55

Я попытался проголосовать за ваш @zohar, это был первый.

Jeremy Thompson 16.04.2018 13:57

@ZoharPeled Пожалуйста, отметьте как дубликат. Нет причин иметь еще один дубликат Enum.Parse на этом сайте

Camilo Terevinto 16.04.2018 13:57

Потрясающие! Это сработало! Решение 2 - это именно то, что я хотел узнать! Вероятно, не так много нужно для этого проекта, можно было бы легко использовать решение 1. Но решение 2 отлично ответило на мой вопрос. Спасибо.

m0nsterr 16.04.2018 13:58

Это не точный дубликат @Camilo, есть выбор аргумента в параметре или приведение строки к перечислению.

Jeremy Thompson 16.04.2018 13:59

@CamiloTerevinto на самом деле, этот вопрос не является точной копией. Из одного только вопроса неясно, хочет ли OP анализировать значение перечисления из строки или просто интересно, что передать в качестве цвета. Однако в своем комментарии к моему ответу ОП пояснил, что да, это правильный дубликат.

Zohar Peled 16.04.2018 14:00

@JeremyThompson OP, упомянутый в другом ответе, что они хотели, так что это дубликат

Camilo Terevinto 16.04.2018 14:01

@ZoharPeled Тогда либо близко как неясно, либо как дубликат, по-прежнему нет причин для ответа.

Camilo Terevinto 16.04.2018 14:01

@CamiloTerevinto Пожалуйста, позвольте мне решить для себя, хочу ли я ответить на вопрос или проголосовать за закрытие. ИМХО, нет ничего плохого в том, чтобы отвечать на повторяющиеся вопросы, и я знаю, что некоторые из высокопоставленных членов согласны с этим мнением. Джефф Этвуд даже писал об этом в блоге.

Zohar Peled 16.04.2018 14:06

Другие вопросы по теме