Вот конкретный пример того, что я хочу сделать.
Рассмотрим функцию string.Join
. До .NET 4.0 было только две перегрузки, обе из которых требовали параметра string []
.
Начиная с .NET 4.0, появились новые перегрузки, использующие более гибкие типы параметров, включая IEnumerable
.
У меня есть библиотека, которая включает функцию Join
, которая выполняет в основном то же самое, что и функция .NET 4.0 string.Join
. Мне просто было интересно, могу ли я сделать реализацию этой функции зависимой от целевой платформы .NET. Если бы 4.0, он мог бы просто вызвать string.Join
внутри. Если версия 3.5 или старше, она может вызывать собственную внутреннюю реализацию.
string.Join
с параметром IEnumerable
даже не будет компилироваться при нацеливании на версию .NET старше 4.0; поэтому любой подход, который я использую, должен выполняться до компиляции. (Например, проверка свойства Environment.Version
во время выполнения не сработает.)