орки наступают БОРИС ВОЛЬФСОН Спецвыпуск: Хакер, номер #071, стр. 071-060-1 BORIS@SPLENDOT.COM HTTP://SPLENDOT.COM C# 3.0 + LINQ = ЛЮБОВЬ В ЭТОЙ СТАТЬЕ Я ХОЧУ РАССКАЗАТЬ О ПОСЛЕДНИХ ДОСТИЖЕНИЯХ В ОБЛАСТИ СОЗДАНИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ. РЕЧЬ ПОЙДЕТ О ЯЗЫКЕ, КОТОРЫЙ ТОЛЬКО ГОТОВИТСЯ К ВЫХОДУ – C# ТРЕТЬЕЙ ВЕРСИИ. ЭТОТ ЯЗЫК БУДЕТ ВКЛЮЧЕН В СЛЕДУЮЩУЮ ВЕРСИЮ VISUAL STUDIO – ФЛАГМАНСКИЙ ПРОДУКТ КОМПАНИИ МАЙКРОСОФТ, КОТОРЫЙ ПОЛУЧИЛ КОДОВОЕ ИМЯ «ORCAS». LINQ – ЭТО НОВАЯ ЧАСТЬ ЯЗЫКА C# 3.0 (А ЗАОДНО И VISUAL BASIC 9.0) [сначала был...] Возможно, ты будешь смеяться, но сначала был Турбо Паскаль :). Да-да, именно этот синий монстр, который сейчас наводит страх на многих программистов. Этот компилятор разработал Андерс Хейлсберг, чье имя можно увидеть в окне «About» Турбо Паскаля. Но время шло - наступила пора Windows, а DOS отошел в мир иной. Общеизвестно, что фирма Борланд выпускает новую интегрированную среду разработки приложений Delphi. Догадайся, кто возглавлял группу разработчиков Delphi? А откуда в C# появились свойства, система обработки событий и многое другое? Хотя стоп, я забегаю немного вперед, ведь следующий этап нашей истории – появление .NET – технологии Майкрософт, сердцем которой стал новый язык C#. Первая версия языка была очень похожа на Java версии 1.4, хотя и содержала ряд усовершенствований. В октябре 2003 года общественности стала доступна вторая версия языка, главной фишкой которой была работа с генериками (generics) – аналогом шаблонов в языке С++. Теперь на пороге третья версия, которую мы и рассмотрим подробно. [новые фичи языка C# 3.0.] Для начала проверим, что за зверь этот третий си шарп. Самым революционным введением является, конечно же, LINQ (Language-Integrated Query). Фактически, это встроенный язык структурированных запросов, который можно использовать для контейнеров, XML-данных и баз данных. Другим нововведением являются лямбда-выражения, которые служат удобной заменой делегатам. Также в новой версии языка можно инициализировать свойства объекта при его создании, что позволяет немного сократить код: var man = new Man { Name = “Адам”; } Есть новая фишка для самых ленивых программистов, которые не любят писать тип локальных переменных - пишем просто var: var s = “Привет” Если серьезно, это нам очень пригодится при получении результатов LINQ-запросов. К тому же, необязательность указания типа отнюдь не нарушает строгую типизацию языка, так как компилятор сам определяет тип локальной переменной, - фактически мы просто устранили дублирование. Дальше по списку идут типы без имени, которые позволяют создавать объекты без указания типа: var man = new { Name = “Адам”; } И, наконец, еще одна новая фишка в ООП - возможность расширять уже существующие классы методами. Для этого служат, как ни странно, методы-расширения :). Подробные сведения можно найти в официальных документах на сайте microsoft.com – конкретные адреса даны на врезке, а мы переходим к главному блюду. [LINQ.] Есть такой замечательный язык SQL, который отличается от привычных языков тем, что он является декларативным, то есть на нем не надо описывать, как решить задачу, а достаточно описать, что должно получиться в результате. Хотим получить список книг ценой более двухсот рублей, упорядоченных по имени автора, - так и пишем: |