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

    @lil_Toady
    Не, дженерики - это очень обширная тема, лучше ее пока отложите) Та запись которую я привел в первом ответе - это и есть дженерик аргумент (в треугольных скобках). Привел ее только потому что лучше объясняет суть происходящего. Возможно автор учебника ее специально избегал.
  • Кто разъяснит строчку из C# кода?

    @lil_Toady
    Без дженериков на уровне метода нельзя описать что метод возвращает тот же тип, который передается аргументом, поэтому описано что возвращает object. Под капотом оно и так возвращает типа DayOfWeek, но т.к. снаружи мы это знаем лишь по документации, а не по типу возвращаемого значения, то приходится делать преобразование.
  • Кто разъяснит строчку из C# кода?

    @lil_Toady
    Извините что ругаюсь словами implicit/explicit - это явное и неявное преобразование.

    Проф. деформация))
  • Кто разъяснит строчку из C# кода?

    @lil_Toady
    А пример с (int)15 не совсем то, т.к. 15 и есть int. Правая и левая стороны выражения одного типа. А Enum.Parse возвращает object.

    Если взять пример
    short i = 15;
    То тут уже действительно идет преобразование, но компилятор ничего не говорит т.к. на типе Short объявлено что в него можно преобразовывать из int implicitly - без потери данных;

    В следующем примере то же самое, есть implicit оператор из int в decimal
    decimal i = 15;

    Но вот в обратную сторону компилятор будет ругаться, т.к. из decimal в int возможна потеря данных, и это приведение типов уже не implicit, а explicit (нам нужно принудительно приводить тип):
    int i = 15d; // 15d - это decimal, тут будет ошибка компиляции (Cannot implicitly convert ...)
    
    int i = (int)15d; // А вот это уже будет работать
    
    int i = (int)15.123d; // Тоже будет работать, но потеряем значения после запятой (точки)
  • Кто разъяснит строчку из C# кода?

    @lil_Toady
    Метод ничего не знает о том как будет использоваться возвращаемое им значение, да и в целом о коде вокруг него, поэтому то как favDay объявлена значения не имеет. Следовательно нужный тип и надо в метод передавать явно.