Вам нужно различать версии .NET и версии C#.
Если вы пишете код в VS 2010 (или компилируете его с помощью компилятора C# 4), но используете только функции C# 2 и только целевые типы в платформе .NET 2.0, то да, вы сможете скомпилировать с помощью C# 2 (в Visual Studio 2005). Конечно, файл вашего проекта может работать или не работать, но исходный исходный код должен быть в порядке.
Обратите внимание, что иногда вы можете использовать новые функции, не зная, что вы делаете это - времена, когда более поздние версии языка делают допустимыми ранее недопустимые преобразования, например, могут изменять, какая перегрузка метода выбрана или какое преобразование метода применены. Это угловые случаи, но они могут случиться. Обратите внимание, что сообщение csc для компиляции со старой версией языка не всегда отключает эти преобразования ... бывают случаи, когда компилятор C# 3 будет вести себя по-разному с компилятором C# 4, использующим версию 3.