Soit je n'ai pas compris les directives du préprocesseur, soit elles ne fonctionnent pas. J'essaie d'écrire une application pour plusieurs frameworks. (DNX451, DNX46, NETSTANDARD1_5, ...)affecter une valeur à la directive du préprocesseur
Je dois toujours écrire quelque chose comme (par exemple très simple, je sais que je ne besoin ici)
public class Test
{
#if !(NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0)
public int? testVar;
#else
public int testVar;
#endif
public string Method()
{
#if !(NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0)
return (testVar ?? 0).ToString();
#else
return testVar.ToString();
#endif
}
}
donc est-il une possibilité de définir une variable? Au moins par fichier, pour que je puisse dire .: par exemple
#define NetCore (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0)
donc je ne dispose que d'écrire
public class Test
{
#if !NetCore
public int? testVar;
#else
public int testVar;
#endif
....
aurait beaucoup moins de code et je pourrais le définir au-dessus de mon dossier.
Ou est-ce simplement impossible avec les produits dérivés du préprocesseur?
Est-ce que l'ajout d'un conditionnel à la '.csproj' être une option pour vous? – Caramiriel
@Caramiriel hmm, serait une option s'il n'y a vraiment aucune possibilité de le définir dans le code. –