start = 0; val = 0;
}
public int GetNext() { val += 2; return val;
}
public void Reset() {
val = start;
}
public void SetStart(int x) { start = x; val = start;
Как видите, в классе ByTwos реализуются три метода, определяемых в интерфейсе ISeries. Как пояснялось выше, это приходится делать потому, что в классе нельзя реализовать интерфейс частично.
Ниже приведен код класса, в котором демонстрируется применение класса ByTwos, реализующего интерфейс ISeries.
// Продемонстрировать применение класса ByTwos, реализующего интерфейс, using System;
class SeriesDemo { static void Main() {
ByTwos ob = new ByTwos(); /
for (int i=0; i < 5; i++)
Console .WriteLine ('Следующее число равно ' + ob. GetNext () ) ;
Console.WriteLine('ХпСбросить') ; ob.Reset();
for(int i=0; i < 5; i++)
Console.WriteLine('Следующее число равно ' + ob.GetNext());
Console.WriteLine('ХпНачать с числа 100');
ob.SetStart(100);
for(int i=0; i < 5; i++)
Console.WriteLine('Следующее число равно ' + ob.GetNext());
}
}
>csc SeriesDemo.cs ISeries.cs ByTwos.cs
В интегрированной среде разработки Visual Studio для этой цели достаточно ввести все три упомянутых выше файла в конкретный проект С#. Кроме того, все три компилируемых элемента (интерфейс и оба класса) допускается включать в единый файл. Ниже приведен результат выполнения скомпилированного кода.
Следующее число равно 2 Следующее число равно 4 Следующее число равно 6 Следующее число равно 8 Следующее число равно 10
Сбросить.
Следующее число равно 2 Следующее число равно 4 Следующее число равно 6 Следующее число равно 8 Следующее число равно 10
Начать с числа 100.
Следующее число равно 102 Следующее число равно 104 Следующее число равно 106 Следующее число равно 108 Следующее число равно 110
В классах, реализующих интерфейсы, разрешается и часто практикуется определять их собственные дополнительные члены. В качестве примера ниже приведен другой вариант класса ByTwos, в который добавлен метод GetPrevious () , возвращающий предыдущее значение.
// Реализовать интерфейс ISeries и добавить в // класс ByTwos метод GetPrevious ().
class ByTwos : ISeries {
int start;
int val;
int prev;
public ByTwos() {
start = 0; val = 0; prev = -2;
}
