Лабораторный практикум по информатике



бет28/83
Дата06.01.2022
өлшемі1.1 Mb.
#15674
түріПрактикум
1   ...   24   25   26   27   28   29   30   31   ...   83
Операции is и as

Часто бывает удобно переменные разных классов записать в один спи- сок, чтобы было легче его обрабатывать. Чтобы проверить, к какому классу принадлежит какой-либо объект, можно использовать оператор is: он воз- вращает истину, если объект принадлежит указанному классу. Пример:

Button b = new Button(); if (b is Button)

MessageBox.Show("Это кнопка!"); else

MessageBox.Show("Это что‐то другое...");

Как правило, в общих списках объекты хранятся в «обезличенном» состоянии, так, чтобы у всех у них был лишь минимальный общий для всех набор методов и свойств. Для того чтобы получить доступ к рас- ширенным свойствам объекта, нужно привести его к исходному классу с помощью операции приведения as:

(someObject as Button).Text = "Это кнопка!";

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

if (someObject is Button)

(someObject as Button).Text = "Это кнопка!";

В качестве практического примера использования этих операций рассмотрим пример программы, которая перебирает все элементы управления на форме, и у кнопок (но не у других элементов управле- ния!) заменяет текст на пять звездочек «*****»:

private void Form1_Load(object sender, EventArgs e)

{

// Перебираем все элементы управления



foreach (Control c in this.Controls) if (c is Button) // Кнопка?

(c as Button).Text = "*****"; // Да!

}



    1. Достарыңызбен бөлісу:
1   ...   24   25   26   27   28   29   30   31   ...   83




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

    Басты бет