Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
public virtual void TrimToSize() - Устанавливает значение свойства Capacityравным значению свойства Count
В приведенном ниже примере программы демонстрируется применение класса
Queue.
// Продемонстрировать применение класса Queue.
using System;
using System.Collections;
class QueueDemo {
static void ShowEnq(Queue q, int a) {
q.Enqueue(a) ;
Console.WriteLine("Поместить в очередь: Enqueue(" + a + ")");
Console.Write("Содержимое очереди: ");
foreach(int i in q)
Console.Write(i + " ");
Console.WriteLine() ;
}
static void ShowDeq(Queue q) {
Console.Write("Извлечь из очереди: Dequeue -> ");
int a = (int) q.Dequeue();
Console.WriteLine(a);
Console.Write("Содержимое очереди: ");
foreach(int i in q)
Console.Write(i + " ") ;
Console.WriteLine();
}
static void Main() {
Queue q = new Queue();
foreach(int i in q)
Console.Write(i + " ");
ShowEnq(q, 22);
ShowEnq(q, 65);
ShowEnq(q, 91);
ShowDeq(q);
ShowDeq(q);
ShowDeq(q);
try {
ShowDeq (q);
} catch (InvalidOperationException) {
Console.WriteLine("Очередь пуста.");
}
}
}
Эта программа дает следующий результат.
Поместить в очередь: Enqueue(22)
Содержимое очереди: 22
Поместить в очередь: Enqueue(65)
Содержимое очереди: 22 65
Поместить в очередь: Enqueue(91)
Содержимое очереди: 22 65 91
Извлечь из очереди: Dequeue -> 22
Содержимое очереди: 65 91
Извлечь из очереди: Dequeue -> 65
Содержимое очереди: 91
Извлечь из очереди: Dequeue -> 91
Содержимое очереди:
Извлечь из очереди: Dequeue -> Очередь пуста.
Хранение отдельных битов в классе коллекции BitArray
Класс BitArray
служит для хранения отдельных битов в коллекции. А поскольку в коллекции этого класса хранятся биты, а не объекты, то своими возможностями он отличается от классов других коллекций. Тем не менее в классе BitArray
реализуются интерфейсы ICollection
и IEnumerable
как основополагающие элементы поддержки всех типов коллекций. Кроме того, в классе BitArray
реализуется интерфейс ICloneable
.
В классе BitArray
определено несколько конструкторов. Так, с помощью приведенного ниже конструктора можно сконструировать объект типа BitArray
из массива логических значений.
public BitArray(bool[] values
)
В данном случае каждый элемент массива values становится отдельным битом в коллекции. Это означает, что каждому элементу массива values соответствует отдельный бит в коллекции. Более того, порядок расположения элементов в массиве values
сохраняется и в коллекции соответствующих им битов.
Коллекцию типа BitArray
можно также составить из массива байтов, используя следующий конструктор.
public BitArray( byte[] bytes)
Здесь битами в коллекции становится уже целый их набор из массива bytes, причем элемент bytes [0] обозначает первые 8 битов, элемент bytes[1] — вторые 8 битов и т.д. Аналогично, коллекцию типа BitArray
можно составить из массива целочисленных значений, используя приведенный ниже конструктор.
public BitArray(int[ ] values)
В данном случае элемент values[0] обозначает первые 32 бита, элемент values[1] — вторые 32 бита и т.д.
С помощью следующего конструктора можно составить коллекцию типа BitArray
, указав ее конкретный размер:
public BitArray(int length)
где length обозначает количество битов в коллекции, которые инициализируются логическим значением false. В приведенном ниже конструкторе можно указать не только размер коллекции, но и первоначальное значение составляющих ее битов.
public BitArray(int length, bool defaultValue)
В данном случае все биты в коллекции инициализируются значением defaultValue, передаваемым конструктору в качестве параметра.
И наконец, новую коллекцию типа BitArray
можно создать из уже существующей, используя следующий конструктор.
public BitArray(BitArray bits)
Вновь сконструированный объект будет содержать такое же количество битов, как и в указываемой коллекции bits, а в остальном это будут две совершенно разные коллекции.
Коллекции типа BitArray
подлежат индексированию. По каждому индексу указывается отдельный бит в коллекции, причем нулевой индекс обозначает младший бит.
В классе BitArray
определяется ряд собственных методов, помимо тех, что уже объявлены в интерфейсах, которые в нем реализуются. Методы этого класса приведены в табл. 25.9. Обратите внимание на то, что в классе BitArray
не поддерживается метод Synchronized()
. Это означает, что для коллекций данного класса синхронизированная оболочка недоступна, а свойство IsSynchronized
всегда имеет логическое значение false. Тем не менее для управления доступом к коллекции типа BitArray
ее можно синхронизировать для объекта, предоставляемого упоминавшимся ранее свойством SyncRoot
.
Таблица 25.9. Методы, определенные в классе BitArray
Метод - Описание
public BitArray And(BitArray value) - Выполняет операцию логического умножения И битов вызывающего объекта и коллекции value. Возвращает коллекцию типа BitArray,содержащую результат
public bool Get(int index) - Возвращает значение бита, указываемого по индексу index
public BitArray Not() -Выполняет операцию поразрядного логического отрицания НЕ битов вызывающей коллекции и возвращает коллекцию типа BitArray,содержащую результат
public BitArray Or(BitArray value) - Выполняет операцию логического сложения ИЛИ битов вызывающего объекта и коллекции value. Возвращает коллекцию типа BitArray,содержащую результат
public void Set (int index, bool value) - Устанавливает бит, указываемый по индексу index ,равным значению value
public void SetAll(bool value) - Устанавливает все биты равными значению value
public BitArray Xor(BitArray value) - Выполняет логическую операцию исключающее ИЛИ над битами вызывающего объекта и коллекции value. Возвращает коллекцию типа BitArray,со-
В классе BitArray
определяется также собственное свойство, помимо тех, что указаны в интерфейсах, которые в нем реализуются.
Интервал:
Закладка: