Истина в том, что Func<>
и Action<>
- это хорошая идея . Они значительно упрощают чтение вашего кода и позволяют избежать ужасного количества грязных шаблонных объявлений делегатов. Вот почему вы хотите использовать их .
Итак, у вас есть действительно привлекательный стиль программирования, который вы хотите использовать. Это стандартная техника, которая теперь используется почти повсеместно, а не по-старому, но вы не можете использовать ее, потому что вы нацелены на устаревшую версию фреймворка. Что делать?
У вас есть три варианта:
- Используйте стиль программирования, который обычно использовался до появления функции
- Добавьте функцию в свой собственный код по духу, но с неконфликтующими именами
- Добавить функцию в ваш собственный код с «настоящими» именами, но в вашем собственном пространстве имен
Использование старого стиля программирования исключает все преимущества, которые мы привыкли ценить благодаря этой функции. Это большая жертва. Но, возможно, все ваши со-разработчики привыкли к этому стилю программирования.
Использование функции с неконфликтующими именами кажется достаточно разумным. Люди смогут читать код и получать выгоду от функций, но никто не будет смущен тем, что они кажутся чем-то, чем они не являются. Когда вы, наконец, будете готовы к обновлению, вам придется исправить имена. К счастью Ctrl + R, Ctrl + R делает это очень просто.
Использование функции с теми же именами, что и у стандартной функции, означает, что ваш код может быть нацелен на более старую версию, но, похоже, использует новые функции. Похоже на победу / победу. Но это может привести к путанице, и вы должны быть осторожны, чтобы ваши типы не подвергались воздействию других незнающих сборок, что может вызвать проблемы компиляции на уровне исходного кода. Таким образом, вы должны быть осторожны и четко понимать, что происходит. Но это может работать эффективно.
Вы должны выбрать любой подход, который имеет смысл в вашей ситуации, в зависимости от ваших потребностей. Не существует единого правильного ответа для всех, только компромиссы.