Учебно-методическое пособие для студентов и слушателей системы повышения



бет46/75
Дата16.03.2023
өлшемі1,62 Mb.
#74783
түріУчебно-методическое пособие
1   ...   42   43   44   45   46   47   48   49   ...   75
class Program
{ static void Main()
{ Student st1 = new Student("Иванов", 3); st1.ShowInfo(); Student st2 = new Student("", ‐7); st2.ShowInfo(); Console.ReadKey();
}
}

  1. Протестируем программу с разными параметрами. Существенный недо-

статок – незащищенность от ввода абсурдных данных (например, можно ввести, что студент st2 не имеет фамилии и учится на отрицательном курсе –7.

  1. Инкапсулируем данные (скроем и защитим поля), создав свойства с ме- тодами set и get для управления доступом к полям. Система Visual Studio поз- воляет автоматизировать этот процесс.

  2. Для этого устанавливаем курсор на имя_поля (например, fam), в меню Рефакторинг (Refactoring) выбираем пункт Инкапсулировать поле (Incapsulate field), в пункте обновление ссылок указываем Все и нажимаем OK. В появив- шемся диалоговом окно Просмотр изменений ссылок, показываются предлага- емые замены полей на свойства (как правило, это все методы и объекты, исполь- зующие значения полей, кроме конструкторов!). Соглашаемся с предложением, нажимая Применить. Доступ к полю fam будет изменен на private (закрытый) и методом Fam сгенерирован шаблон общедоступного свойства с именем Fam (с большой буквы), которое и будет использоваться теперь вместо поля fam.

  3. Создадим свои правила доступа. Для этого будем вводить необходимый код в автоматически сгенерированные шаблоны set и get. Например, все фами- лии будем хранить большими буквами (преобразование зададим в блоке set). А если фамилия не введена (поле fam пустое), то блок get будет возвращать значение «неизвестный». Измененный фрагмент кода будет выглядеть так:

private string fam; // поле стало закрытым
public string Fam // сгененрировано свойство


Достарыңызбен бөлісу:
1   ...   42   43   44   45   46   47   48   49   ...   75




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет