Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
8
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

50. Классы .Net для работы с файлами. Основные классы пространства имен System.Io.

Для операций ввода-вывода служит пространство имен System.IO.

Вот краткий обзор наиболее важных классов и перечислений из этого пространства имен:

» BinaryReader – позволяет читать из файла данные различных типов (целые, вещественные, логические)

» BinaryWriter – позволяет записывать в файл данные различных типов (целые, вещественные, логические)

» Directory – класс со статическими методами для работы с папками

» DirectoryInfo – класс для работы с некоторой папкой

» File – класс со статическими методами для работы с файлом

» FileInfo – класс для работы с некоторым файлом

» Path – класс для работы с файловыми путями

» Перечисление FileAttributes – атрибуты файла

» Перечисление FileMode – возможные способы открытия файла

» Перечисление FileAccess содержит константы, показывающие, открыт ли файл для чтения, записи и др.

» FileSystemWatcher – класс для отслеживания изменений в файловой системе

» Перечисление NotifyFilters – параметры, по которым происходит отслеживание изменений в файловой системе

» Перечисление WatcherChangeTypes – какие изменения отслеживаются в файловой системе

51. Структыры

Структуры определяются с помощью ключевого слова struct, например:

public struct PostalAddress

{ // Fields, properties, methods and events go here... }

Структуры используют большую часть того же синтаксиса, что и классы, однако они более ограничены по сравнению с ними.

В объявлении структуры поля не могут быть инициализированы до тех пор, пока они будут объявлены как постоянные или статические.

Структура не может объявлять используемый по умолчанию конструктор (конструктор без параметров) или деструктор.

Структуры копируются при присваивании. При присваивании структуры к новой переменной выполняется копирование всех данных, а любое изменение новой копии не влияет на данные в исходной копии. Это важно помнить при работе с коллекциями типов значений, такими как Dictionary<string, myStruct>.

Структуры являются типами значений, а классы — ссылочными типами.

В отличие то классов структуры можно создавать без использования оператора new.

Структуры могут объявлять конструкторы, имеющие параметры.

Структура не может быть унаследованной от другой структуры или класса и не может быть основой для других классов. Все структуры наследуют непосредственно от System.ValueType, который наследует от System.Object.

Структуры могут реализовывать интерфейсы.

Структура может использоваться как тип, допускающий значение NULL, и ей можно назначить значение NULL.

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

52. Перечисления

Перечисления (enumerations) - целочисленные типы, которые определяет пользователь. При обьявлении перечислений вы специфицируете набор допустимых значений, которые могут принимать экземпляры перечислений. Кроме того нужно присвоить значениям интуитивно понятные имена.

В дальнейшей работе перечисления могут сыграть очень важную роль и облегчить жизнь программисту. Обьявляются перечисления вот так:

public enum DaysOfWeek

{ Monday = 0,

Tuesday = 1,

Wednesday = 2,

Thursday = 3,

Friday = 4,

Saturday = 5,

Sunday = 6 }

Ключевое слово enum используется для объявления перечисления, отдельного типа, состоящего из набора именованных констант, который называется списком перечислителя.

Обычно лучше всего определять перечисление прямо в пространстве имен, чтобы всем классам в пространстве имен было одинаково удобно получить к нему доступ. Однако перечисление также может быть вложено в классе или структуре.

По умолчанию первому перечислителю задано значение, равное нулю, а значение каждого последующего оператора увеличивается на 1. Например:

enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

В этом перечислении Sat имеет значение 0, Sun — 1, Mon — 2 и т. д.

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

Для перечисления утверждены следующие типы: byte, sbyte, short, ushort, int, uint, long или ulong.