ответы

ответы


1.1   Тип System.Object, гарантированные методы. Безопасность типов. Приведение типов, операторы is, as.

Поддерживает все классы в иерархии классов .NET Framework и предоставляет службы низкого уровня для производных классов. Он является исходным базовым классом для всех классов платформы .NET Framework и корнем иерархии типов.

  • Equals— Поддерживает сравнение объектов.
  • Finalize-Выполняет операции очистки, прежде чем будет автоматически удален объект.
  • GetHashCode— Создает число, соответствующее значению объекта, для поддержки использования хэш-таблицы.
  • ToString— Создает удобочитаемого текста строку, описывающую экземпляр класса.

Оператор is проверяет совместимость объекта с данным типом

Оператор as работает со ссылочными типами, он производит нужное преобразование типов, если оно возможно и возвращает null, если оно невозможно.


2.2 Конкатенация литеральных и нелитеральных строк с помощью оператора +. Конкатенация строк: оператор +, String.Concat(), String.Join(), String.Format(),StringBuilder Append().

+ (Производительность не снижается, независимо от количества используемых строк. Даже при одновременном использовании нескольких операторов "+" содержимое строки копируется только один раз. Однако если повторить такую операцию несколько раз (например, в цикле), могут возникнуть проблемы с производительностью. )

String.Format (Преобразует значения объектов в строки на основе указанных форматов и вставляет их в другую строку. String.Format использует встроенный StringBuilder.)

String.Join (Сцепляет элементы указанного массива или элементы коллекции, помещая между ними заданный разделитель.)

StringBuilder.Append (Добавляет копию указанной строки к данному экземпляру. Хорош в циклах)


3.5 Методы расширения.

Это возможность расширить функционал имеющегося класса добавив в него свой статичный метод

public static string ListToString(this IList list)
    {
        StringBuilder result = new StringBuilder("");
        
        if (list.Count > 0)
        {
            result.Append(list[0].ToString());
            for (int i = 1; i < list.Count; i++)
                result.AppendFormat(", {0}", list[i].ToString());                
        }
        return result.ToString();
    }


4.3 Коллекции List, Stack, Queue, HaskSet, Dictionary

List (Представляет строго типизированный список объектов, доступных по индексу. Поддерживает методы для поиска по списку, выполнения сортировки и других операций со списками.)

Stack (это контейнер, работающий по принципу "последний вошел, первый вышел" (last in, first out — LIFO). В нем реализуются интерфейсы ICollection, IEnumerable и ICloneable. Этот класс создает динамическую коллекцию, которая расширяется по мере потребности хранить в ней вводимые элементы. Всякий раз, когда требуется расширить такую коллекцию, ее емкость увеличивается вдвое.)

Count

Свойство Count возвращает количество элементов в стеке.

Push()

Метод Push() добавляет элемент в вершину стека.

Pop()

Метод Pop() удаляет и возвращает элемент из вершины стека. Если стек пуст, генерируется исключение типа InvalidOperationException.

Peek()

Метод Peek() возвращает элемент из вершины стека, не удаляя его при этом.

Contains()

Метод Contains() проверяет наличие элемента в стеке и возвращает true в случае нахождения его там.


7.1 Сериализация

Сериализация представляет процесс преобразования какого-либо объекта в поток байтов. После преобразования мы можем этот поток байтов или записать на диск или сохранить его временно в памяти. А при необходимости можно выполнить обратный процесс - десериализацию, то есть получить из потока байтов ранее сохраненный объект.

Чтобы объект определенного класса можно было сериализовать, надо этот класс пометить атрибутом Serializable


8.1 XML. Краткая характеристика XML (назначение, формат хранения, структура, обязательные элементы, предопределенность тегов, чувствительность к регистру, комментарии). Well-formed и valid документ xml. Канонический вид xml.

EXtensible Markup Language — расширяемый язык разметки.

  • В начальном теге атрибут не должен встречаться более одного раза.
  • Нельзя включать ссылки на внешние сущности в строковый атрибут.
  • Необходимо объявлять все сущности, кроме тех, которые используются как часть языка XML.
  • Нельзя ссылаться на двоичную сущность, размещенную непосредственно в содержании документа. Двоичные сущности могут фигурировать лишь в атрибутах ENTITY.
  • Нельзя создать рекурсивный параметр (recursive parameter) или же рекурсивную текстовую сущность — ни прямым, ни косвенным способом.
  • Параметрические сущности должны быть объявлены прежде, чем вы начнете их использовать в документе.
  • Любые непустые теги должны быть правильно вложены (nested).
  • Имя, указанное в оконечном теге элемента, должно соответствовать типу элемента в начальном теге.
  • Нельзя помещать угловые скобки (<) в замещаемый текст какой бы то ни было сущности.


9.3 Процесс. Жизненный цикл процесса. Дочерние процессы. Влияние родительского процесса на дочерние. Доступ к данным, памяти. Классы приоритетов процессов. Действия ОС для создания процесса.

Процессом обычно называют экземпляр выполняемой программы. Процесс, который создается другим процессом, называется дочерним процессом.

High, Normal, Below normal, Above normal, Low

Процессы класса Normal делятся на процессы переднего плана (foreground) и фоновые (background). Для процесса, с которым пользователь в данный момент работает, то есть для процесса переднего плана, уровень приоритета поднимается на две единицы.

Для создания нового процесса операционной системе необходимо выполнить определенную последовательность действий:

• присвоить новому процессу уникальный идентификатор, т.е.

занести новую запись в таблицу процессов;

• выделить пространство для процесса, т.е. выделить адресное

пространство для всех элементов образа процесса;

• инициализировать управляющий блок процесса;

• поместить процесс в список “готовых” или “готовых приоста-

новленных процессов”;

• загрузить часть кодов и данных процесса в оперативную память.

Report Page