Читаем C# 4.0: полное руководство полностью

      val = value;

    }

  }

  // Получить значение по индексу,

  public int this[int index] {

    get {

      val = 0;

      for(int i=0; i < index; i++) val += 2;

      return val;

    }

  }

}

// Продемонстрировать применение интерфейсного индексатора,

class SeriesDemo4 {

  static void Main() {

    ByTwos ob = new ByTwos();

    // Получить доступ к последовательному

    //ряду чисел с помощью свойства,

    for (int i=0; i < 5; i++)

      Console.WriteLine("Следующее число равно " + ob.Next);

    Console.WriteLine("\nНачать с числа 21");

    ob.Next = 21;

    for (int i=0; i < 5; i++)

      Console.WriteLine("Следующее число равно " + ob.Next);

    Console.WriteLine("\nСбросить в 0");

    ob.Next = 0;

    // Получить доступ к последовательному

    //ряду чисел с помощью индексатора

    for (int i=0; i < 5; i++)

      Console.WriteLine("Следующее число равно " + ob[i]);

  }

}

Вот к какому результату приводит выполнение этого кода.

Следующее число равно 2

Следующее число равно 4

Следующее число равно 6

Следующее число равно 8

Следующее число равно 10

Начать с числа 21

Следующее число равно 23

Следующее число равно 25

Следующее число равно 27

Следующее число равно 29

Следующее число равно 31

Сбросить в 0

Следующее число равно 0

Следующее число равно 2

Следующее число равно 4

Следующее число равно 6

Следующёе число равно 8

<p>Наследование интерфейсов</p>

Один интерфейс может наследовать другой. Синтаксис наследования интерфейсов такой же, как и у классов. Когда в классе реализуется один интерфейс, наследующий другой, в нем должны быть реализованы все члены, определенные в цепочке наследования интерфейсов, как в приведенном ниже примере.

// Пример наследования интерфейсов,

using System;

public interface IA {

  void Meth1();

  void Meth2() ;

}

// В базовый интерфейс включены методы Meth1() и Meth2(),

// а в производный интерфейс добавлен еще один метод — Meth3().

 public interface IB : IA {

  void Meth3();

}

// В этом классе должны быть реализованы

//все методы интерфейсов IA и IB.

class MyClass : IB {

  public void Meth1() {

    Console.WriteLine("Реализовать метод Meth1().");

  }

  public void Meth2() {

    Console.WriteLine("Реализовать метод Meth2().");

  }

  public void Meth3() {

    Console.WriteLine("Реализовать метод Meth3().");

  }

}

class IFExtend {

  static void Main() {

    MyClass ob = new MyClass();

    ob.Meth1();

    ob.Meth2();

    ob.Meth3();

  }

}

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

<p>Сокрытие имен при наследовании интерфейсов </p>

Когда один интерфейс наследует другой, то в производном интерфейсе может быть объявлен член, скрывающий член с аналогичным именем в базовом интерфейсе. Такое сокрытие имен происходит в том случае, если член в производном интерфейсе объявляется таким же образом, как и в базовом интерфейсе. Но если не указать в объявлении члена производного интерфейса ключевое слово new, то компилятор выдаст соответствующее предупреждающее сообщение.

<p>Явные реализации</p>
Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных