¿Puedo hacer que una directiva de preprocesador dependa de la versión de .NET Framework?
Aquí hay un ejemplo concreto de lo que quiero hacer.
Considera elstring.Join
función. Antes de .NET 4.0, solo había dos sobrecargas, las cuales requerían unastring[]
parámetro.
A partir de .NET 4.0, hay nuevas sobrecargas que toman tipos de parámetros más flexibles, incluidosIEnumerable<string>
.
Tengo una biblioteca que incluye unJoin
función que hace esencialmente lo que .NET 4.0string.Join
función hace. Me preguntaba si podría hacer que la implementación de esta función dependa del marco .NET al que se dirige. Si 4.0, simplemente podría llamarstring.Join
internamente. Si es 3.5 o anterior, podría llamar a su propia implementación interna.
string.Join
con unIEnumerable<string>
parámetro ni siquieracompilar cuando se dirige a una versión .NET anterior a la 4.0; así que cualquier enfoque que use tendría que tener lugar antes de la compilación. (Revisando elEnvironment.Version
la propiedad en tiempo de ejecución, por ejemplo, no funcionaría).