Entweder habe ich die Präprozessordirektiven nicht verstanden oder sie funktionieren nicht.Wert der Präprozessordirektive zuweisen
Ich versuche, eine Anwendung für mehrere Frameworks zu schreiben. (DNX451, DNX46, NETSTANDARD1_5, ...)
Also ich muss immer etwas schreiben wie (wirklich einfaches Beispiel, ich weiß, ich würde es nicht brauchen hier)
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
}
}
so gibt es eine Möglichkeit, eine Variable definieren? Mindestens pro Datei, so könnte ich sagen z.B .:
#define NetCore (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0)
So nur
public class Test
{
#if !NetCore
public int? testVar;
#else
public int testVar;
#endif
....
wäre viel weniger Code zu schreiben, ich habe, und ich konnte es auf meine Datei definieren.
Oder ist dies nicht möglich mit Präprozessordeektiven?
Würde eines bedingten auf das Hinzufügen von '.csproj' eine Option für Sie sein? – Caramiriel
@Caramiriel hmm, wäre eine Option, wenn es wirklich keine Möglichkeit gibt, es im Code zu definieren. –