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

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

Что понял я. Приведение типа это (DayOfWeek),Перечисление Enum из парсированного ввода в консоль дня недели. Но сбило с толку typeof(DayOfWeek) хотя понимаю, что это имя типа....в общем, не могу в едино картинку в голове сложить функционал этой строчки.
Кому не сложно, можете пояснить данную конструкцию?
В гугле честно искал, не нашел ответ.
  • Вопрос задан
  • 1424 просмотра
Решения вопроса 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 (попадете туда же, ну или с коррекцией на версию дотнет и язык)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
PR-solution Саранск
от 80 000 до 150 000 руб.
ГК АРТИ Москва
от 150 000 руб.
Кнопка Екатеринбург
До 150 000 руб.
21 июл. 2019, в 17:53
3000 руб./за проект
21 июл. 2019, в 16:20
10000 руб./за проект
21 июл. 2019, в 15:45
1500 руб./за проект