Герберт Шилдт - C# 4.0 полное руководство - 2011
- Название:C# 4.0 полное руководство - 2011
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0 полное руководство - 2011 краткое содержание
C# 4.0 полное руководство - 2011 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Следовательно, используя делегат 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.
КлассBitConverter является статическим. Он содержит методы, приведенные в табл. 21.13. Кроме того, в нем определено следующее поле.
public static readonly bool IsLittleEndian
Это поле принимает логическое значениеtrue, если в текущей среде сначала сохраняется младший байт слова, а затем старший. Это так называемый формат с прямым порядком байтов. А если в текущей среде сначала сохраняется старший байт слова, а затем младший, то полеIsLittleEndian принимает логическое значениеfalse. Это так называемый формат с обратным порядком байтов. В компьютерах с процессором Intel Pentium используется формат с прямым порядком байтов.
Таблица 21.13. Методы, определенные в классе BitConverter Метод Назначение
public static long Преобразует значение value в целочисленное значение
DoubleToInt64Bits (double типа long и возвращает результат
value)
public static byte [ ] Преобразует значение value в однобайтовый массив и
GetBytes (bool value) возвращает результат
public static byte [ ] Преобразует значение value в двухбайтовый массив и
GetBytes (char value) возвращает результат
public static byte [ ] Преобразует значение value в восьмибайтовый массив
GetBytes (double value) и возвращает результат
public static byte [ ] Преобразует значение value в четырехбайтовый массив
GetBytes (float value) и возвращает результат
public static byte [ ] Преобразует значение value в четырехбайтовый массив
GetBytes (int value) и возвращает результат
public static byte [ ] Преобразует значение value в восьмибайтовый массив
GetBytes (long value) и возвращает результат
public static byte [ ] Преобразует значение value в двухбайтовый массив и
GetBytes (short value) возвращает результат
public static byte [ ] Преобразует значение value в четырехбайтовый массив
GetBytes (uint value) и возвращает результат
public static byte [ ] Преобразует значение value в восьмибайтовый массив
GetBytes (ulong value) _и возвращает результат_
Метод
Назначение
public static byte[]
Преобразует значение value в двухбайтовый массив
GetBytes(ushort value)
и возвращает результат
public static double
Преобразует значение value в значение типа double
Int64BitsToDouble(long
и возвращает результат
value)
public static bool
Преобразует байт из элемента массива, указываемого по
ToBoolean(byte[] value,
индексу value [startlndex] , в эквивалентное значе
int startlndex)
ние типа boolи возвращает результат. Ненулевое значе
public static char
ние преобразуется в логическое значение true,а нулевое — в логическое значение falseПреобразует два байта, начиная с элемента массива
ToChar(byte[] value , int
value [ index] , в эквивалентное значение типа char
index)
и возвращает результат
public static double
Преобразует восемь байтов, начиная с элемента массива
ToDouble(byte[] value,
value [startlndex] , в эквивалентное значение типа
int startlndex)
doubleи возвращает результат
public static short
Преобразует два байта, начиная с элемента массива
Tolntl6(byte[] value,
value [startlndex] , в эквивалентное значение типа
int startlndex)
shortи возвращает результат
public static int
Преобразует четыре байта, начиная с элемента массива
ToInt32(byte[] value,
value [startlndex] , в эквивалентное значение типа
int startlndex)
intи возвращает результат
public static long
Преобразует восемь байтов, начиная с элемента массива
ToInt64(byte[] value,
value [startlndex] , в эквивалентное значение типа
int startlndex)
longи возвращает результат
Интервал:
Закладка: