Метод делегата Action, отображающий значение, которое ему передается,



static void Show(MyClass о) {

Console.Write(о.i + " ");

}

 

Еще один метод делегата Action, делающий

Отрицательным значение, которое ему передается.

static void Neg(MyClass o) {

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);

}

}

 

Ниже приведен результат выполнения этой программы.

 

Содержимое массива 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 DoubleToInt64Bits (double  value) -   Преобразует значение value в целочисленное значение типа long и возвращает результат

public static byte[] GetBytes (bool value) -   Преобразует значение value в однобайтовый массив и возвращает результат

public static byte[] GetBytes (char value) -   Преобразует значение value в двухбайтовый массив и возвращает результат

public static byte[] GetBytes (double value) -   Преобразует значение value в восьмибайтовый массив и возвращает результат

public static byte[] GetBytes (float value) -   Преобразует значение value в четырехбайтовый массив и возвращает результат

public static byte[] GetBytes (int value) -   Преобразует значение value в четырехбайтовый массив и возвращает результат

public static byte[] GetBytes (long value) -   Преобразует значение value в восьмибайтовый массив и возвращает результат

public static byte[] GetBytes (short value) -   Преобразует значение value в двухбайтовый массив и возвращает результат

public static byte[] GetBytes (uint value) -   Преобразует значение value в четырехбайтовый массив и возвращает результат

public static byte[] GetBytes (ulong value) -   Преобразует значение value в восьмибайтовый массив и возвращает результат

public static byte[] GetBytes(ushort value) -  Преобразует значение value в двухбайтовый массив и возвращает результат

public static double Int64BitsToDouble(long  value) -  Преобразует значение value в значение типа double  и возвращает результат

public static bool ToBoolean(byte[] value,  int startlndex) -  Преобразует байт из элемента массива, указываемого по индексу value [startlndex] , в эквивалентное значение типа bool и возвращает результат. Ненулевое значение преобразуется в логическое значение true, а нулевое — в логическое значение false 

public static char ToChar(byte[] value , int  index) -  Преобразует два байта, начиная с элемента массива value [ index] , в эквивалентное значение типа char  и возвращает результат

public static double - ToDouble(byte[] value,  int startlndex) -  Преобразует восемь байтов, начиная с элемента массива value [startlndex] , в эквивалентное значение типа double и возвращает результат

public static short Tolntl6(byte[] value,  int startlndex) -  Преобразует два байта, начиная с элемента массива value [startlndex] , в эквивалентное значение типа short и возвращает результат

public static int ToInt32(byte[] value,  int startlndex) -  Преобразует четыре байта, начиная с элемента массива value [startlndex] , в эквивалентное значение типа int и возвращает результат

public static long ToInt64(byte[] value,  int startlndex) -  Преобразует восемь байтов, начиная с элемента массива value [startlndex] , в эквивалентное значение типа long и возвращает результат

public static float ToSingle(byte[] value,  int startlndex) -  Преобразует четыре байта, начиная с элемента массива value [startlndex] , в эквивалентное значение типа float и возвращает результат

public static string ToString(byte[] value) -  Преобразует байты из массива value в символьную строку. Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами

public static string ToString(byte[] value ,  int startlndex) -  Преобразует байты из массива value в символьную строку, начиная с элемента value[startindex] .   Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами

public static string ToString(byte[] value,  int startlndex, int  length) -  Преобразует байты из массива value в символьную строку, начиная с элемента value [ startlndex]  и включая число элементов, определяемых параметром length. Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами

public static ushort ToUIntl6(byte[] value,  int startlndex) -  Преобразует два байта, начиная с элемента массива value [startlndex] , в эквивалентное значение типа ushort и возвращает результат

public static uint ToUInt32(byte[] value,  int startlndex) -  Преобразует четыре байта, начиная с элемента массива value[startlndex] , в эквивалентное значение типа uint и возвращает результат

public static ulong ToUInt64(byte [] value,  int startlndex) -  Преобразует восемь байтов, начиная с элемента массива value[startlndex ]  , в эквивалентное значение типа ulong и возвращает результат

 

 


Дата добавления: 2019-02-12; просмотров: 269; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!