Общие делегаты Func и Action из более поздних версий .NET очень привлекательны, и во многих местах было продемонстрировано, что их можно легко воссоздать в коде, ориентированном на .NET 2.0, например здесь .
Однако с точки зрения библиотеки, ориентированной на .NET 2.0, которая может быть использована приложениями построен против любой более поздней версии .NET, как это складывается. Является ли реализация этого «уровня совместимости» в библиотеке абсолютным рецептом конфликта (как с точки зрения частного, так и общедоступного интерфейса), или есть способы сделать эту работу независимой от целевой структуры, на которой строится приложение-потребитель?
Если это не стартер, было бы лучше: A) Определите идентичный набор параметризованных делегатов с разными именами? или.. B) Строго придерживайтесь соглашения .NET 2.0 и определяйте новые типы делегатов по мере необходимости?