C 1 апреля! Последние изменения в C# 4.0
Как вы уже знаете, в C# 4.0 появилось много новых возможностей, среди которых динамическая среда выполнения, именованные и необязательные параметры, ковариантность и контравариантность.
Сейчас команда разработчиков языка C# пытается реализовать более «мелкие» изменения, которые не являются масштабными изменениями, но также могут представлять интерес для .NET разработчиков.
Хочу рассказать о совершенно новой возможности, которая была добавлена в C# 4.0. Речь пойдет об операторе «goes to», который записывается как «-->» и симметричный оператор «<--». Эти операторы были добавлены Visual Studio Community Technology Preview, поэтому попробовать эти возможности уже можно сейчас.
Пример работы операторов:
int x = 10; // this is read "while x goes to zero" while (x --> 0) { Console.WriteLine("x = {0}", x); }
Как вы можете увидеть, этот пример выведет 9, 8, 7 и т.д. до тех пор, пока x не станет равным 0. Такой же оператор присутствует в последней версии Java, поэтому команда разработчиков C# приложила максимум усилий для того, чтобы данная возможность появилась в новой версии C#.
Позже команда добавила поддержку симметричного оператора:
int x = 10; // this is read "while zero is approached by x" while (0 <-- x) { Console.WriteLine("x = {0}", x); }
Цикл будет продолжаться до тех пор, пока x не станет равным 0. В данный момент операторы не будут доступны в VB.NET, но, возможно, они появятся в новой версии.
Есть несколько отличий между этими двумя операторами, которые более детально будут описаны позже. Среди таких отличий:
- оператор "goes to" требует на одну итерацию меньше чем "approached by".