.


:




:

































 

 

 

 





,

# : , . , , .

, #: . , , , . . #.

- , , . . , . , . , , . , , . # interface.

. . , . , , . , . , ..

(.. ) , . . , -. . , , , . # : - .

interface. .

interface

{

_ _ 1 { _ );

_ _ 2 { _ );

//...

_ _ N { _ );

}

- . _ . , , . , . , . , .

, .

12.1

public interface ISeries

{

int GetNext(); //

void Reset(); //

void SetStart(int ); //

}

ISeries. I , , - . ISeries public .

, , . . , . , static.

, . , . .

class _ : _

{

//

}

_ - . , . , .

. . . , .

, , public. , , . , , .

, ISeries. ByTwos, , .

12.2

// ISeries.

class ByTwos: ISeries

{

int start;

int val;

 

public ByTwos()

{

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.

12.3

// 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("\n");

ob.Reset();

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

Console.WriteLine(" " +

ob.GetNext());

 

Console.WriteLine("\n 100");

ob.SetStart(100);

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

Console.WriteLine(" " +

ob.GetNext());

}

}

SeriesDemo, , ISeries, ByTwos SeriesDemo. . , ISeries.cs, ByTwos.cs SeriesDemo.cs, :

>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(), .

12.4

// ISeries

// ByTwos GetPrevious().

class ByTwos: ISeries

{

int start;

int val;

int prev;

 

public ByTwos()

{

start = 0;

val = 0;

prev = -2;

}

 

public int GetNext()

{

prev = val;

val += 2;

return val;

}

 

public void Reset()

{

val = start;

prev = start - 2;

}

 

public void SetStart(int x)

{

start = x;

val = start;

prev = val - 2;

}

 

// , ISeries.

public int GetPrevious()

{

return prev;

}

}

, GetPrevious(), , ISeries. , . .

, . Primes, . , ISeries , ByTwos.

12.5

// ISeries

//

class Primes: ISeries

{

int start;

int val;

 

public Primes()

{

start = 2;

val = 2;

}

 

public int GetNext()

{

int i, j;

bool isprime;

 

val++;

for(i = val; i < 1000000; i++) {

isprime = true;

for(j = 2; j <= i/j; j++) {

if((i%j)==0) {

isprime = false;

break;

}

}

if(isprime) {

val = i;

break;

}

}

return val;

}

 

public void Reset()

{

val = start;

}

 

public void SetStart(int x)

{

start = x;

val = start;

}

}

, , ByTwos Primes, , , . , - , , .

, # , .. . , . , . , 11.

. - ByTwos Primes. , .

12.6

// .

 

using System;

 

// .

public interface ISeries

{

int GetNext(); //

void Reset(); //

void SetStart(int x); //

}

 

// ISeries

// ,

// .

class ByTwos: ISeries

{

int start;

int val;

 

public ByTwos()

{

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;

}

}

 

// ISeries

// .

class Primes: ISeries

{

int start;

int val;

 

public Primes()

{

start = 2;

val = 2;

}

 

public int GetNext()

{

int i, j;

bool isprime;

 

val++;

for(i = val; i < 1000000; i++) {

isprime = true;

for(j = 2; j <= i/j; j++) {

if((i%j)==0) {

isprime = false;

break;

}

}

if(isprime) {

val = i;

break;

}

}

return val;

}

 

public void Reset()

{

val = start;

}

 

public void SetStart(int x)

{

start = x;

val = start;

}

}

 

class SeriesDemo2

{

static void Main()

{

ByTwos twoOb = new ByTwos();

Primes primeOb = new Primes();

ISeries ob;

 

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

ob = twoOb;

Console.WriteLine(" " +

ob.GetNext());

ob = primeOb;

Console.WriteLine(" " +

ob.GetNext());

}

}

}

:

2

3

4

, 5

6

7

8

11

10

13

Main() ob ISeries. , , ISeries. twoOb primeOb ByTwos Primes , ISeries.

: , . , , .

, . .

//

{

get;

set;

}

, , , : get set .

, . . , . , . , set private.

ISeries ByTwos, Next , .

12.7

// .

 

using System;

 

public interface ISeries

{

// .

int Next {

get; //

set; //

}

}

 

// ISeries.

class ByTwos: ISeries

{

int val;

 

public ByTwos() {

val = 0;

}

 

// .

public int Next {

get {

val += 2;

return val;

}

set {

val = value;

}

}

}

 

// .

class SeriesDemo3

{

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);

}

}

.

2

4

6

8

10

 

21

23

25

27

29

31

. .

//

this[int ]

{

get;

set;

}

, , , : get set .

ISeries, , i- .

12.8

// .

 

using System;

 

public interface ISeries

{

// .

int Next

{

get; //

set; //

}

 

// .

int this[int index]

{

get; // return the specified number in series

}

}

 

// ISeries.

class ByTwos: ISeries

{

int val;

 

public ByTwos()

{

val = 0;

}

 

// .

public int Next

{

get {

val += 2;

return val;

}

set {

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

. , . , , , , .

12.9

// .

 

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();

}

}

Methl() MyClass. . , , , , , , .





:


: 2016-12-28; !; : 472 |


:

:

, ; , .
==> ...

1987 - | 1783 -


© 2015-2024 lektsii.org - -

: 0.222 .