Мой проект в режиме отладки содержит конструкции, которые поддерживают только C # 7.3.Но в режиме Release проект должен быть построен на C # 7.0 без определенных строк кода.
Я знаю о некоторых стандартных символах препроцессора, таких как NET472
и NETSTANDARD2_0
, но он используется для работы с различными стандартами и их версиями.,И это бесполезно для условий языковой версии.
public static Expression<TDelegate> CreateExpression<TDelegate>()
where TDelegate : Delegate // Work in 7.3 and above
{ ... }
Я ожидал некоторых трюков, таких как
#if CSharpVersion >= 7.3
where TDelegate : Delegate
#endif
Теперь я использую это утверждение:
#if DEBUG
where TDelegate : Delegate
#endif
Но это не будетработать, если я изменю языковые версии в свойствах проекта.