Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯП - половина готово.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
298 Кб
Скачать
☆

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

Перечислением называют тип целочисленных данных, состоящий из набора именованных констант или списка значений перечислителя. Для объявления перечисления используют ключевое слово enum. Общая форма объявления перечисления:

enum имя {список_перечисления};

где имя — это имя типа перечисления, а список_перечисления — список идентификаторов, разделяемый запятыми.

Например, объявление типа, значениями которого являются дни недели, имеет вид:

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

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

Каждая символическая константа в перечислении имеет целое значение. Однако неявные преобразования перечислимого типа во встроенные целочисленные типы и обратно в C# не определены, а значит, в подобных случаях требуется явное приведение типов. Кроме того, приведение типов потребуется при преобразовании двух перечислимых типов.

После объявления типа перечисления его можно использовать для объявления переменных данного типа. Этим переменным можно присваивать разрешенные типом значения, выполнять сравнение значение переменных данного типа.

Так как перечисления обозначают целые значения, то их можно, например, использовать для управления оператором выбора switch или же оператором цикла for.

Пример применения перечисления в программе

for (Days WeekDay = Days.Sat; WeekDay<=Days.Fri; WeekDay++)

if (WeekDay==Days.Sun)

tbOut.AppendText(WeekDay.ToString()+"-любимый день!\r\n");

else

tbOut.AppendText(WeekDay.ToString()+"-учебный день!\r\n");

Структуры

Структура – это составной тип данных, который применяется для описания несложных объектов, таких как точка (Point), прямоугольник (Rectangle), Товар, Клиент. Структура под одним именем способна объединить данные различных типов. Отдельные данные структуры называются полями. Объявление структуры осуществляется с помощью ключевого слова struct, за которым идет ее имя и далее список элементов, заключенных в фигурные скобки:

[модификатор доступа] struct имя {

// объявления полей

[Модификатор доступа] тип_1 имя_1; [модификатор доступа] тип_2 имя_2;

...

[Модификатор доступа] тип_n имя_n;

}

В этом определении модификатор доступа определяет «видимость» полей структуры для других операторов программы. Модификатор private скрывает поле – оно остается доступным только внутри структуры. Модификатор public разрешает доступ к соответствующему полю и используется наиболее часто.

Пример объявления структуры xyz для хранения координат 3-х мерной точки. Структура имеет общедоступные переменные, за счет ключевого слова public:

 public struct xyz {      public int x; // координата x      public int y; // координата y      public int z; // координата z }

Пример объявления структуры UserInfo для хранения данных о пользователе.

public struct UserInfo

{

public string Name; //ФИО

public int Age; //Возраст

}

Объявление структуры – это только декларация о пользовательском типе данных. Для реальной работы в программе необходимо создавать переменные типа структуры. Это делается с помощью оператора new.

xyz Point1 = new xyz(); //Создание переменной Point1

или

UserInfo Stud=new UserInfo(); //Создание переменной Stud

Правила работы с полями структуры идентичны работе с переменными соответствующих типов. Однако к полям структуры обращаются через составное имя. Формат обращения:

имя_структуры.имя_поля

Например

Point1.x = 125; Point1.y = k+25; Point1.z = 2*Point1.y;

Аналогично можно создать массив структур

UserInfo[] Student = new UserInfo[5]; //Создание массива

Student[0].Name = "Иванов И.И.";

Student[0].Age = 25;

Student[1].Name = "Петров И.И.";

Student[2].Age = 21;

  1. Работа с файлами в языке C#.

Файл – это набор данных, который хранится на внешнем запоминающем устройстве (например, на жестком диске). Файл размещается в определенном каталоге (папке) и имеет имя и расширение. Расширение позволяет идентифицировать, какие данные и в каком формате хранятся в файле.

Под работой с файлами подразумевается:

- создание файлов;

- чтение данных;

- запись данных;

- удаление файлов;

- изменение параметров файла (имя, расширение…);

- другое.

Си Шарп предоставляет огромные возможности для работы с файлами: чтение, запись, перезапись текста и данных и т. д.

Работа с файлами в программе реализуется классами пространство имен System.IO, которое необходимо подключить к программе с помощью

using System.IO;

Компоненты классов OpenFileDialog и SaveFileDialog

Работу с путями в диалоговых программах значительно упрощают визуальные (отображаемые) компоненты классов OpenFileDialog и SaveFileDialog - это стандартные диалоговые окна, предназначенные для обеспечения возможности выбора файлов для загрузки и сохранения, соответственно. Компоненты расположены в разделе компонентов «Диалоговые окна».

Эти Компоненты имеют однотипные свойства, некоторые из которых приведены ниже:

 AddExtension. Логическое свойство, определяющее, требуется ли добавлять расширение к имени файла, если у него расширение не задано;

 DefaultExt. Строка, которая задает расширение файла «по умолчанию», т.е. расширение, которое автоматически подставляется к имени файла, если у него расширение не задано;

 CheckFileExists. Логическое свойство, указывающее, должен ли существовать выбранный файл (как правило, установлено у диалогового окна открытия);

 CheckPathExists. Логическое свойство, указывающее, должна ли существовать выбранная папка (как правило, установлено у диалоговых окон);

 FileName. Строка, определяющая имя файла «по умолчанию» (до работы с диалоговым окном) и выбранный пользователем файл (после работы с диалоговым окном);

 Filter. Определяет список типов файлов для быстрой фильтрации. Задается в виде строки, разделенной на блоки символами «|». Для одного фильтра требуется указать два блока: первый представляет собой текст, отображаемый пользователю, а второй – собственно фильтр отбора файлов. Например «Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*» (без кавычек);

 InitialDirectory. Строка, определяющая начальную папку, содержимое которой будет отображать диалоговое окно;

 Title. Строка, задающая заголовок диалогового окна.

У диалогового окна выбора файла для записи имеется свойство OverwritePrompt (логическое), которое определяет необходимость выдачи дополнительного окна подтверждения при попытке перезаписать существующий файл.

Пример использования. На форме следует разместить компонент OpenFileDialog с именем OpenFileDialog1 и кнопку Button с именем btOpen. В обработчик нажатия кнопки btOpen_Click следует внести код

private void btOpen_Click(object sender, EventArgs e)

{

string filename;

//Отображение диалога и проверка нажатия кнопки "OK"

if (openFileDialog1.ShowDialog() != DialogResult.OK)

{

return; //Выход так как кнопки "OK" не нажата

}

//Имя файла и директории хранитя в войстве FileName как строка

filename = openFileDialog1.FileName;

<Выполнение работы с выбранным файлом>

}

Операции с файлами

Небольшие порции данных, которые целиком размещаются в оперативной памяти, также целиком могут записываться или читаться из файла. Наиболее простой способ такой работы – использование класса File и его методов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]