Вот конкретный пример того, что я хочу сделать.Могу ли я сделать директиву препроцессора в зависимости от версии .NET framework?
Рассмотрите функцию string.Join
. Pre -.NET 4.0, было только две перегрузки, каждая из которых требовала параметра string[]
.
Начиная с .NET 4.0 появляются новые перегрузки с использованием более гибких типов параметров, включая IEnumerable<string>
.
У меня есть библиотека, которая включает в себя функцию Join
, которая действительно выполняет функцию .NET 4.0 string.Join
. Мне просто интересно, могу ли я реализовать реализацию этой функции в зависимости от платформы .NET. Если 4.0, он может просто вызвать string.Join
внутренне. Если 3.5 или старше, он может назвать свою собственную внутреннюю реализацию.
- Имеет ли смысл эта идея?
- Если это имеет смысл, что это самый логичный способ сделать это? Я предполагаю, что я просто предполагаю, что директива препроцессора будет иметь наибольший смысл, поскольку вызов
string.Join
с параметромIEnumerable<string>
не будет даже компиляции при ориентации на версию .NET старше 4.0; поэтому любой подход, который я использую, должен был состояться до компиляции. (ПроверкаEnvironment.Version
свойства во время выполнения, например, не будет работать.)
Смотрите также http://stackoverflow.com/questions/3436526/detect-target-framework-version-at-compile-time – Maslow