В приведенном ниже примере программы демонстрируется применение делегата 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[1] = 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); Console.WriteLine; } }
Ниже приведен результат выполнения этой программы. Содержимое массива nums: 5 2 3 4 1 Содержимое массива nums после отрицания: -5 -2 -3 -4 -1 Класс BitConverter
В программировании нередко требуется преобразовать встроенный тип данных в массив байтов. Допустим, что на некоторое устройство требуется отправить целое значение, но сделать это нужно отдельными байтами, передаваемыми по очереди. Часто возникает и обратная ситуация, когда данные получаются из устройства в виде упорядоченной последовательности байтов, которые требуется преобразовать в один из встроенных типов. Для подобных преобразований в среде .NET предусмотрен от дельный класс BitConverter.
Класс BitConverter является статическим. Он содержит методы, приведенные в табл. 21.13. Кроме того, в нем определено следующее поле. public static readonly bool IsLittleEndian
Это поле принимает логическое значение true, если в текущей среде сначала со храняется младший байт слова, а затем старший. Это так называемый формат с пря мым порядком байтов. А если в текущей среде сначала сохраняется старший байт слова, а затем младший, то поле IsLittleEndian принимает логическое значение false. Это так называемый формат с обратным порядком байтов. В компьютерах с процессором Intel Pentium используется формат с прямым порядком байтов.