Программирование - это просто
Advertisement
Главная arrow Уроки программирования arrow Уроки Visual C# для чайников arrow Visual C# для чайников. Урок 13. Понятие интерфейса. Создание собственного класса.
19.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Visual C# для чайников. Урок 13. Понятие интерфейса. Создание собственного класса. Печать E-mail
Автор megabax   
13.05.2012 г.
В этой статье я постараюсь максимально просто и понятно изложить основы программирования на языке Delphi

Visual C# для чайников. Урок 13. Понятие интерфейса. Создание собственного класса.

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

В C# есть инструменты, которые позволяют реализовать такую задачу. И так, давайте познакомимся с таким понятием, как интерфейс. Это класс, методы которого не реализованы. Он является шаблоном для объявления других классов.  Пусть, например, перед нами стоит задача создать драйвера устройств, которые могут принимать и посылать данные. Создаем для них вот такой интерфейс:

        public interface MyDriver

        {

            string receiv();

            void send(string data);

        }

Теперь создадим класс первого драйвера:

        public class FirstDriver : MyDriver

        {

            public string receiv()

            {

                return "This is first driver";

            }

            public void send(string data)

            {

                MessageBox.Show("Send data to first driver " + data);

            }

        }

а затем второго:

        public class SecondDriver : MyDriver

        {

            public string receiv()

            {

                return "This is second driver";

            }

            public void send(string data)

            {

                MessageBox.Show("Send data to second driver " + data);

            }

        }

Теперь мы можем использовать данные классы, в том числе, можем даже объявить массив(список) из элементов интерфейса MyDriver, но хранить в нем экземпляры классов драйвером, которые наследуют данный интерфейс, например, вот так:

        private void btnStart_Click(object sender, EventArgs e)

        {

            list = new List<MyDriver>();

            list.Add(new FirstDriver());

            list.Add(new SecondDriver());

            label1.Text = list[0].receiv();

            label2.Text = list[1].receiv();

            list[0].send("Proba");

            list[1].send("Proba");

        }

Протестируем программу:

Visual C# для чайников. Урок 13. Понятие интерфейса. Создание собственного класса.

Стоит заметить, что если мы объявим класс, который не наследует данный интерфейс, например вот такой:

        public class Proba

        {

            public string receiv()

            {

                return "This is proba class";

            }

            public void send(string data)

            {

                MessageBox.Show("Send data toproba class " + data);

            }

 

        }

то мы не сможем добавить его в список элементов этого интерфейса, даже если он содержит его методы:

Visual C# для чайников. Урок 13. Понятие интерфейса. Создание собственного класса.

Так же мы не сможем добавить в список и сам экземпляр интерфейса (так как эта операция бессмысленна, интерфейс - это абстрактное понятие):

Visual C# для чайников. Урок 13. Понятие интерфейса. Создание собственного класса.

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


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  программного продукта "Microsoft Visual Studio 2010 Professional", авторское право на который принадлежит корпорации Microsoft.. 


 

(С) Шуравин Александр

 

Последнее обновление ( 12.02.2014 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги