Скажем, я хочу, чтобы кто-то рассказал о различиях между foreach в С# 4.0 и 5.0.
Итак, я пишу свой фрагмент кода:
public static void Main()
{
string[] fruits = { "Apple", "Banana", "Cantelope" };
var actions = new List<Action>();
foreach (var fruit in fruits)
{
actions.Add(() => Console.WriteLine(fruit));
}
foreach(var a in actions)
{
a();
}
}
Но независимо от того, как я его скомпилирую, он всегда работает так, как в 5.0 *. Я попытался установить языковой вариант в файле csproj (Build → Advanced → Language Version), и я попытался просто создать его в командной строке:
csc myProgram.cs /langversion:4
Я не могу заставить его работать "старым" способом. Любая помощь? Бонусные баллы, если вы можете сказать мне, как это сделать как в командной строке, так и в Visual Studio.
* Для тех, кто не знает, на С#. <= 4.0 это напечатало бы Cantelope Cantelope Cantelope
, а в С# 5.0+ оно (более интуитивно) напечатало бы Apple Banana Cantelope
. Здесь ссылка и здесь еще.