• Номера ошибок. Требуется однократно указать номер ошибки в коде. Есть хорошая практика?

    @nexus478
    Небольшая подсказка - метод ToInt() и действия внутри избыточны, потому что enum по умолчанию можно приводить к int, например:
    public enum MCodes
    {
        _049 = 49,
        _50 = 50
    }
    
    ...
    var error49 = (int) MCodes._049;
  • Где найти практику?

    @nexus478
    Георгий_, поясню, что я имел в виду. Тренировка на алгоритмических задачках безусловна важна, но есть несколько нюансов:
    1. В 99% случаях Вы будете работать с процедурным кодом (хотя конечно зависит от задачи). Это означает, что скорее всего, у вас будет от силы 2-3 класса (и то вряд ли), которые реализуют какие-либо процедуры (зачастую, вычисления). В реальном приложении этих классов у вас будет десятки и сотни, соответственно, на первый план выходит умение выделять ответственность и определять взаимодействие между классами. Задачки вас этому не научат.
    2. При работе с различными классами и их взаимодействием станет более понятным значение того или иного элемента языка (интерфейсы, абстрактные классы, делегаты, асинхронность и т.д.). Тяжело представить, как все это может использоваться на том же codewars (если я ошибаюсь - поправьте).
    3. Алгоритмические задачи не дадут Вам опыта работы с реальным приложением,
    его окружением, взаимодействием с базой данных и так далее. Создавая конкретное приложение, вы будете решать конкретные практические задачи.

    Иными словами, работая с алгоритмическими задачками, Вы будете копошиться (другого выражения не смог подобрать) в очень узком контексте. К тому же, если Вы собираетесь в дальнейшем искать работу, следует понимать, что программирование происходит не в вакууме, а на конкретном фреймворке с конкретным окружением. И для получения работы хорошо хотя бы ориентироваться в этом.

    И наконец, в плане базовой подготовки советую бросить силы на изучение ООП и принципов SOLID (опять же, если вы заинтересованы в получении работы). Это даст Вам понимание того, как организовывать код, как вносить в него изменения и при не создавая переусложненные конструкции. Рекомендую начать с книги Роберта Мартина "Принципы, паттерны и методики гибкой разработки на языке C#", она легко достается из сети.