|
Программирование >> Автоматически обновляемые приложения
Инициализация объектов с помощью ключевого слова var таюке можно инициализировать объекты так, как показано в листинге 18.2. Листинг 18.2. Инициализация объектов var р = new Programer() { p.FirstName = Alexander ; p.LastName = Klimoff ; Этот код равносилен следующему Programer р = new Programer(); p.FirstName = Alexander ; p.LastName = Klimoff ; Это особенно удобно, если имя класса слишком длинное. Например, вместо старого способа объявления переменной можно применить короткий вариант (листинг 18.3). Листинг 18.3. Короткий вариант объявления переменной Старый вариант объявления переменной VeryLongFooClassWithTemplate<MyLongTypeParameter> local = new VeryLongFooClassWithTemplate<MyLongTypeParameter>О; Новый краткий вариант var localVar = new MyLongFooClassWithTemplate<MyLongTypeParameter>() ; Таким образом, новое ключевое слово var вместо типа переменной говорит компилятору о том, что тип выражения надо вычислить из правой части. Не- \ Листинг 18,1. Объявление неявно типизированных массивов var arrint = new[]{l, 2 3); вместо int[] arrint = ... var arrDouble = new[]{l, 2, 3.0}; вместо double arrDouble[] = ... Тип массива в этих случаях определяется по типам элементов. LINQ LINQ (Language Integrated Query, запрос, интегрированный в язык программирования) представляет собой новую технологию обработки данных на уровне языка программирования. Главная особенность- синтаксис языка стал очень похож на язык запросов SQL. Нас интересует реализация этой технологии на языке С#. Рассмотрим несколько базовых примеров, которые дадут нам представление о мощи и удобстве использования технологии LINQ. Но более подробно о технологии LINQ вам придется прочесть в других книжках. Вывод чисел из заданного массива с условием в примере, приведенном в листинге 18.4, мы выводим на экран целые числа из заданного массива, значения которых меньше или равны 8. ; Листинг 18.4. Вывод чисел из заданного массива с условием Задаем массив чисел int[] nuiTibers = { 12, 14, 21, 3, 9, 8, б, 7, 2, 10, 1, 2, 3, 4 }; Выбираем из них числа, меньше чем 8 var lowNums = from n in numbers where n <= 8 select n; foreach (var x in lowNums) { Вьшодим числа, подходящие нашему условию textBoxl.Text += x.ToStringO + ; обходимо помнить, что с ключевым словом var работает именно компилятор, то есть определение типа работает не во время выполнения кода, а на этапе компиляции. Поэтому все ошибки, связанные с неправильным использованием типов, будут обнаружены на этапе компиляции. Листинг 18.5. Использование ключевого слова Where public void Linq2 О string[] digits = { ноль , один , два , три , четыре , пять , шесть , семь , восемь , девять var shortDigits = digits.Where((digit, index) => digit.Length < index); foreach (var d in shortDigits) { textBoxl.Text += String.Format( Длина слова {0} меньше его значения. , d) + Envi ronment.NewLine; Увеличение на единицу ряда чисел в листинге 18.6 мы выводим на экран ряд чисел, больших на единицу, чем ряд чисел, заданных в массиве. Для этого мы используем ключевое слово select для Добавления единицы к каждому элементу массива. Листинг 18.6. Увеличение на единицу ряда чисел public void Linq3() { int[] numbers = { 1, 3, 5, 7, 9, 11, 13, 15 }; var numsPlusOne = from n in numbers select n + 1; Ключевое слово Where в этом примере (листинг 18.5) используется ключевое слово where для печати имени каждого числа от О до 9, у которого длина имени числа меньше, чем его значение. В этом случае код, переданный как лямбда-выражение, конвертируется в нужный тип.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |