Кто разъяснит строчку из C# кода?

Учу язык по учебнику Троелсена. Пока никаких вопросов не возникало. Пока не наткнулся на пример с данным кодом. в отдельности знаю из чего строка состоит, но такую конструкцию инициализации вижу впервые и автор не объясняет.
DayOfWeek favDay;
favDay = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), Console.ReadLine());

Что понял я. Приведение типа это (DayOfWeek),Перечисление Enum из парсированного ввода в консоль дня недели. Но сбило с толку typeof(DayOfWeek) хотя понимаю, что это имя типа....в общем, не могу в едино картинку в голове сложить функционал этой строчки.
Кому не сложно, можете пояснить данную конструкцию?
В гугле честно искал, не нашел ответ.
  • Вопрос задан
  • 1443 просмотра
Решения вопроса 2
@lil_Toady
Методу Enum.Parse нужно знать тип enum'а, чтобы понять список возможных значений. Для значений не входящих в перечисление будет выкинуто исключение ArgumentException.

В перечисление DayOfWeek соответственно входят входят Sunday, Monday, Tuesday, Wednesday, Thursday, Friday и Saturday, если введенная вами строка в консоль не будет соответствовать одному из этих значений, то получите исключение.

В последних версиях стандарта это же самое можно достичь более простым способом, передавая нужный тип как generic аргумент, и не приходится делать приведение типа:
favDay = Enum.Parse<DayOfWeek>(Console.ReadLine());

Думаю такая запись и проще для понимания при чтении кода :)
Ответ написан
mindtester
@mindtester Куратор тега C#
делаю странные вещи..чаще на C#.. иногда за деньги
гугл
- запрос
- первая же строка выдачи
.. а еще короче - в VisualStudio, на слове Parse в конструкции Enum.Parse можно нажать F1 (попадете туда же, ну или с коррекцией на версию дотнет и язык)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы