В этой форме объект, над которым должно выполняться действие, передается в качестве параметра
Следовательно, используя делегат
Actionи методFor Each ,можно в одном операторе выполнить заданную операцию над целым массивом.В приведенном ниже примере программы демонстрируется применение делегата
Actionи методаForEach .Сначала в ней создается массив объектов классаMyClass,а затем используется методShow для отображения значений, извлекаемых из этого массива. Далее эти значения становятся отрицательными с помощью метода Neg . И наконец, методShow используется еще раз для отображения отрицательных значений. Все эти операции выполняются посредством вызовов методаForEach.// Продемонстрировать применение делегата Action.
using System;
'class MyClass { public int i;
public MyClass(int x) { i = x; }
}
class ActionDemo {
// Метод делегата Action, отображающий значение, которое ему передается, static void Show(MyClass о) {
Console.Write(о.i + " ");
}
// Еще один метод делегата Action, делающий // отрицательным значение, которое ему передается.
static void Neg(MyClass о) { *
o.i = -o.i;
}
static void Main {
MyClass[] nums = new MyClass[5];
nums[0] = new MyClass(5); nums[l] = new MyClass(2); nums[2] = new MyClass(3); nums[3] = new MyClass(4); nums[4] = new MyClass(1);
Console.Write("Содержимое массива nums: ");
// Выполнить действие для отображения значений.
Array.ForEach(nums, ActionDemo.Show);
Console.WriteLine;
// Выполнить действие для отрицания значений.
Array.ForEach(nums, ActionDemo.Neg);
Console.Write("Содержимое массива nums после отрицания: ");
// Выполнить действие для повторного отображения значений.
Array.ForEach(nums, ActionDemo.Show);
Ниже приведен результат выполнения этой программы.
Содержимое массива nums: 5 2 3 4 1
Содержимое массива nums после отрицания: -5 -2 -3 -4 -1
Класс BitConverter
В программировании нередко требуется преобразовать встроенный тип данных в массив байтов. Допустим, что на некоторое устройство требуется отправить целое значение, но сделать это нужно отдельными байтами, передаваемыми по очереди. Часто возникает и обратная ситуация, когда данные получаются из устройства в виде упорядоченной последовательности байтов, которые требуется преобразовать в один из встроенных типов. Для подобных преобразований в среде .NET предусмотрен отдельный класс
BitConverter.