Posso tornar uma diretiva de pré-processador dependente da versão do .NET framework?
Aqui está um exemplo concreto do que eu quero fazer.
Considere ostring.Join
função. Antes do .NET 4.0, havia apenas duas sobrecargas, as quais exigiam umastring[]
parâmetro.
A partir do .NET 4.0, há novas sobrecargas que exigem tipos de parâmetros mais flexíveis, incluindoIEnumerable<string>
.
Eu tenho uma biblioteca que inclui umJoin
função que faz essencialmente o que o .NET 4.0string.Join
função faz. Eu queria saber se eu poderia tornar a implementação dessa função dependente do framework .NET que estava sendo direcionado. Se 4.0, poderia simplesmente chamarstring.Join
internamente. Se 3.5 ou mais antigo, poderia chamar sua própria implementação interna.
string.Join
com umIEnumerable<string>
parâmetro nem vaicompilar ao direcionar uma versão .NET anterior a 4.0; portanto, qualquer abordagem que eu use teria que ocorrer antes da compilação. (Verificando oEnvironment.Version
propriedade em tempo de execução, por exemplo, não funcionaria.)