#if SYMBOL
//code
#endif
какие значения предопределены в C# для использования?





Зависит от того, какие параметры компилятора вы используете. Visual Studio помещает туда символ DEBUG в настройках проекта, но вы можете создавать любые, какие захотите.
Чтобы добавить к сказанному Ником, документация MSDN не перечисляет никаких заранее определенных имен. Казалось бы, все должно идти от #define и /define.
Что ж, это зависит от используемого вами компилятора и параметров командной строки. Mono по умолчанию определяет имена, отличные от имен компилятора Microsoft, и в зависимости от того, в какой системе вы находитесь, вы получаете разные определения и т. д.
Если вы предоставляете более конкретную систему, для которой вы компилируете, мы могли бы составить список для этой конкретной системы (например: система x64 Vista, использующая Visual Studio 2008).