A C# Preprocessor