2.3 Использование свойств
Как уже отмечалось выше, свойство, это поле, то есть переменная класса, с которой связаны некоторые действия, осуществляющие обработку записываемых в свойство данных и считываемых. Обращение со свойством происходит как с обычной переменной класса. Например, присвоение свойству значения:
Leftobject =2;
При этом происходит выполнение действия связанного с записью в данное поле.
Описание свойства имеет следующий формат.
УровеньДоступаК_Свойству ТипСвойства ИмяСвойства
{
set { ДействияВыполняемыеПриЗаписиВ_свойство
}
get { действияВыполняемыеПриЧтениии
return Выражение;
}
}
Где set – ключевое слово, указывающее, на действия, выполняемые, при записи данных в свойство.
get – ключевое слово, указывающее, на действия, выполняемые, при чтении данных из поля .
3 Порядок выполнения работы
Данная лабораторная работа предполагает выполнение следующих этапов:
1) Создать проект, включающий основную форму с установленной на ней управляющей кнопкой, сохранить проект в собственной рабочей директории под именем, указывающим на тип задания.
2) Создать классы, соответствующие заданию.
3) Создать переменные для экземпляров классов, создать в обработчике управляющей кнопки оператор создания экземпляра класса.
4) Создать метод, меняющий положение отображаемых объектов, связать его с событием Click данных объектов.
5) Оформить и защитить отчет по лабораторной работе
4 Варианты задания
Заданием для работы является начальная создание проекта, в котором при нажатии кнопки будет создаваться на форме объект виде, соответствующем варианту задания. Варианты заданий отображены в табл. 4.1.
Таблица 4.1
Варианты задания
1 . |
2 . |
3 . |
4 . |
5 . |
6
Вариант 6
|
7 . |
8 . |
9 . |
1
Вариант 10
|
1 1. |
1
Вариант 10
|
5 Содержание и форма отчета
Отчетом по данной работе является проект приложения выполненный в программной среде.
При разработке приложения должны выполняться следующие требования:
1) имя проекта и модуля должно отображать содержание задания;
2) проект должен быть сохранен в рабочей директории студента;
3) программный модуль должен содержать подробные комментарии в частности, должны быть отмечены элементы класса, соответствующие основным элементам объекта (атрибутам, действиям, событиям);
4) действия, выполняемые в конструкторе, должны иметь комментарии (должны быть прокомментированы все методы и процессы в них отображаемые).
6 Пример выполнения работы
Рис. 6.1 Пример задания на лабораторную работу
Для выполнения задания был создан класс MyLabel, в котором объединяются четыре объекта класса Label, которые будут отображаться на форме.
- Sender, тип Control – ссылка на объект (в нашем случае форма) на котором будет отображаться объект данного класса.
- x, y, тип int – начальные координаты для отображения объекта данного класса
- Left - величина отступа от левого края в объекте
- Top - величина отступа от верхнего края в объекте
- Height - высота объекта Label
- Width - ширина объекта Label
- BackColor – цвет фона объекта Label
Исходный код класса MyLable:
namespace TIPIS_IT0ХХ_Laba1_Vaneev
{
class MyLabel // объявление класса
{
private Label label_Telo, label_Golova, label_noga1, label_noga2;
public MyLabel(Control sender, int x, int y)
{
label_Telo = new Label(); //создание объекта
label_Telo.Parent = sender; //наследие на вызываемый объект
label_Telo.Width = 50; //размеры объекта
label_Telo.Height = 20;
label_Telo.Left = x; //начальные координаты
label_Telo.Top = y;
label_Telo.BackColor = Color.Green; //цвет фона
label_Telo.Click += new EventHandler(label_Telo_Click);
label_Golova = new Label();
label_Golova.Parent = sender;
label_Golova.Width = 25;
label_Golova.Height = 40;
label_Golova.Left = label_Telo.Left+label_Telo.Width;
label_Golova.Top = y+label_Telo.Height-label_Golova.Height;
label_Golova.BackColor = Color.Blue;
label_Golova.Click += new EventHandler(label_Golova_Click);
label_noga1 = new Label();
label_noga1.Parent = sender;
label_noga1.Width = 10;
label_noga1.Height = 20;
label_noga1.Left = label_Telo.Left + 5;
label_noga1.Top = label_Telo.Top + label_Telo.Height;
label_noga1.BackColor = Color.Red;
label_noga1.Click += new EventHandler(label_noga1_Click);
label_noga2 = new Label();
label_noga2.Parent = sender;
label_noga2.Width = 10;
label_noga2.Height = 20;
label_noga2.Left = label_Telo.Left - label_noga2.Width + label_Telo.Width - 5;
label_noga2.Top = label_Telo.Top + label_Telo.Height;
label_noga2.BackColor = Color.Red;
label_noga2.Click += new EventHandler(label_noga2_Click);
}
На форме создаем кнопку «Пуск», по нажатию на которую, создается объект класса MyLabel. В результате на форме отобразятся в определенном порядке четыре объекта класса Label.
Исходный код метода, который обрабатывает событие нажатие на кнопку:
void label_noga2_Click(object sender, EventArgs e)
{
label_Telo_Click(sender, e);
}
void label_noga1_Click(object sender, EventArgs e)
{
label_Telo_Click(sender, e);
}
void label_Golova_Click(object sender, EventArgs e)
{
label_Telo_Click(sender, e);
}
void label_Telo_Click(object sender, EventArgs e)
{
label_Golova.Left += 2;
label_noga1.Left += 2;
label_noga2.Left += 2;
label_Telo.Left += 2;
}
}