.


:




:

































 

 

 

 


Delegate void MyEventHandler(); ,




// , class MyEvent {

MyEventHandler[] evnt = new MyEventHandler[3];

public event MyEventHandler SomeEvent {

// , add { int i;

for(i=0; i < 3; i++) if(evnt[i] == null) { evnt[i] = value; break;

}

if (i == 3) Console.WriteLine(" .");

}

// , remove { int i;

for(i=0; i < 3; i++) if(evnt[i] == value) { evnt[i] = null; break;

}

if (i == 3) Console.WriteLine(" .");

}

}

// . , public void OnSomeEvent() {

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

if(evnt[i]!= null) evnt[i]();

}

}

// , MyEventHandler. class W {

public void Whandler() {

Console.WriteLine(" W");

}

}

class X {

public void Xhandler() {

Console.WriteLine(" X");

}

}

class Y {

public void Yhandler() {

Console.WriteLine(" Y");

class Z {

public void Zhandler() {

Console.WriteLine(" Z");

}

}

class EventDemo5 { static void Main() {

MyEvent evt = new MyEvent();

// .

Console.WriteLine(" ."); evt.SomeEvent += wOb.Whandler; evt.SomeEvent += xOb.Xhandler; evt.SomeEvent += yOb.Yhandler;

// - , evt.SomeEvent += zOb.Zhandler;

Console.WriteLine();

// , evt.OnSomeEvent();

Console.WriteLine();

// .

Console.WriteLine(" xOb.Xhandler."); evt.SomeEvent -= xOb.Xhandler; evt.OnSomeEvent();

Console.WriteLine();

// .

Console.WriteLine(" " +

"xOb.Xhandler ."); evt.SomeEvent -= xOb.Xhandler; evt.OnSomeEvent();

Console.WriteLine();

// Zhandler.

Console.WriteLine(" zOb.Zhandler."); evt.SomeEvent += zOb.Zhandler; evt.OnSomeEvent();

}

}

.

.

W X Y

xOb.Xhandler.

W Y

xOb.Xhandler .

.

W Y

zOb.Zhandler.

W X Y

. MyEventHandler. MyEvent. evnt, .

MyEventHandler[] evnt = new MyEventHandler[3];

, . evnt (null).

SomeEvent. event.

public event MyEventHandler SomeEvent {

// , add { int i;

for(i=0; i < 3; i++) if(evnt[i] == null) { evnt[i] = value; break;

}

if (i == 3) Console.WriteLine(" .");

}

// , remove { int i; for(i=0; i < 3; i++) if(evnt[i] == value) { evnt[i] = null; break;

}

, add, (.. ) evnt , value. , . (, .) evnt , . , remove evnt , value. , (null), , .





:


: 2016-12-03; !; : 478 |


:

:

, .
==> ...

1536 - | 1310 -


© 2015-2024 lektsii.org - -

: 0.009 .