Читаем C# 4.0 полное руководство - 2011 полностью

Console.WriteLine();

}

}

Выполнение этой программы дает следующий результат.

Исходный массив: 12 3 4 5

Исходное содержимое целевого массива: 11 12 13 14 15

Целевой массив после копирования: 12 3 4 5

Целевой массив после частичного копирования: 12 3-3-4

Применение предиката

Предикатпредставляет собой делегат типаSystem. Predicate,возвращающий логическое значениеtrueилиfalseв зависимости от некоторого условия. Он объявляется следующим образом.

public delegate bool Predicate (Tobj)

Объект, проверяемый по заданному условию, передается в качестве параметраobj.Если объектobjудовлетворяет заданному условию, то предикат должен возвратить логическое значениеtrue,в противном случае — логическое значениеfalse.Предикаты используются в ряде методов классаArray,включая:Exists (), Find (), Findlndex() иFindAll().

В приведенном ниже примере программы демонстрируется применение предиката с целью определить, содержится ли в целочисленном массиве отрицательное значение. Если такое значение обнаруживается, то данная программа извлекает первое отрицательное значение, найденное в массиве. Для этого в ней используются методыExists() иFind().

class PredDemo {

// Предикатный метод, возвращающий логическое значение true,

// если значение переменной v оказывается отрицательным, static bool IsNeg(int v) { if (v < 0) return true; return false;

}

static void Main() {

int[] nums = { 1, 4, -1, 5, -9 };

Console.Write("Содержимое массива nums: "); foreach(int i in nums)

Console.Write (i + " ");

Console.WriteLine();

// Сначала проверить, содержит ли массив nums отрицательное значение, if(Array.Exists(nums, PredDemo.IsNeg)) {

Console.WriteLine("Массив nums содержит отрицательное значение.");

// Затем найти первое отрицательное значение" в массиве, int х = Array.Find(nums, PredDemo.IsNeg);

Console.WriteLine("Первое отрицательное значение: " + x);

}

else

Console.WriteLine("В массиве nums отсутствуют отрицательные значения.");

}

}

Эта программа дает следующий результат.

Содержимое массива nums: 14-15-9 Массив nums содержит отрицательное значение.

Первое отрицательное значение: -1

В данном примере программы в качестве предиката методам Exists () и Find () передается метод IsNeg (). Обратите внимание на следующее объявление метода IsNeg().

static bool IsNeg (int v) {

Методы Exists () и Find () автоматически и по порядку передают элементы массива переменной v. Следовательно, после каждого вызова метода IsNeg () переменная v будет содержать следующий элемент массива.

Применение делегата Action

Перейти на страницу:

Похожие книги

1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT