Либо я не понял директивы препроцессора, либо они не работают.
Я пытаюсь написать приложение для нескольких фреймворков. (DNX451, DNX46, NETSTANDARD1_5,...)
Поэтому мне всегда приходится писать что-то вроде (действительно простой пример, я знаю, что он мне здесь не понадобится)
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
}
}
так есть ли возможность определить переменную? По крайней мере, для каждого файла, поэтому я мог бы сказать, например:
#define NetCore (NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0)
Так что мне остается только написать
public class Test
{
#if !NetCore
public int? testVar;
#else
public int testVar;
#endif
....
было бы намного меньше кода, и я мог бы определить его поверх моего файла.
Или это просто невозможно с директивами препроцессора?
.csproj
? - person Caramiriel   schedule 27.09.2016