EventArgs . .NET Framework EventHandler. , . EventHandler.
// EventHandler. using System;
// , , class MyEvent {
public event EventHandler SomeEvent; // EventHandler
// .
public void OnSomeEvent() {
if(SomeEvent!= null)
SomeEvent(this, EventArgs.Empty);
}
}
class EventDemo7 {
static void handler(object source, EventArgs arg) {
Console.WriteLine(" ");
Console.WriteLine(": " + source);
}
static void Main() {
MyEvent evt = new MyEvent();
// Handler() , evt.SomeEvent += Handler;
// , evt.OnSomeEvent();
}
}
EventArgs , - EventArgs. Empty. .
: MyEvent
, Windows. , , . #, . , LButtonClick. OnLButtonClick (), .
Windows, , , , , , . , . , , KeyPress OnKeyPress (). , .NET- -.
// , , using System;
// , EventArgs // .
class KeyEventArgs: EventArgs { public char ch;
}
// , , class KeyEvent {
public event EventHandler <KeyEventArgs> KeyPress;
|
|
// , public void OnKeyPress(char key) {
KeyEventArgs k = new KeyEventArgs();
if(KeyPress!= null) { k.ch = key;
KeyPress(this, k);
}
}
}
// KeyEvent. class KeyEventDemo { static void Main() {
KeyEvent kevt = new KeyEvent();
ConsoleKeylnfo key; int count = 0;
// - , kevt.KeyPress += (sender, ) =>
Console.WriteLine(" : " + e.ch);
// - .
kevt.KeyPress += (sender, ) =>
count++; // count
Console.WriteLine(" . " +
" .");
do {
key = Console.ReadKey(); kevt.OnKeyPress(key.KeyChar);
} while(key.KeyChar!= '.');
Console.WriteLine(" " + count + " .");
}
}