Tải bản đầy đủ (.pdf) (3 trang)

Chapter 16 Quick Reference

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.05 KB, 3 trang )



Chapter 16 Quick Reference
To Do this
Declare a
delegate type.
Write the keyword delegate, followed by the return type, followed by the
name of the delegate type, followed by any parameter types. For example:
delegate void Tick();
Invoke a
delegate.
Use the same syntax as a method call. For example:
Tick m;
...
m();
Create an
instance of a
delegate.
Use the same syntax you use for a class or struct: write the keyword new,
followed by the name of the type (the name of the delegate), followed by
the argument between parentheses. The argument must be a method
whose signature exactly matches the signature of the delegate. For
example:
delegate void Tick();
private void Method() { ... }
...
Tick m = new Tick(this.Method);
Declare an
event.
Write the keyword event, followed by the name of the type (the type must
be a delegate type), followed by the name of the event. For example:


delegate void TickHandler();

class Ticker
{
public event TickHandler Tick;
}
Subscibe to an
event.
Create a delegate instance (of the same type as the event), and attach the
delegate instance to the event by using the += operator. For example:
class Clock
{
...
public void Start()
{
ticker.Tick += new TickHandler
(this.RefreshTime);
To Do this
}

private void RefreshTime()
{
...
}

private Ticker ticker = new Ticker();
}
You can also get the compiler to automatically generate the new delegate
by just specifying the subscribing method:
public void Start()

{
ticker.Tick += this.RefreshTime;
}
Unsubscribe
from an event.
Create a delegate instance (of the same type as the event), and detach the
delegate instance from the event by using the –= operator. For example:
class Clock
{
...
public void Stop()
{
ticker.Tick - = new TickHandler
(this.RefreshTime);
}

private void RefreshTime()
{
...
}
private Ticker ticker = new Ticker();
}
Or:
public void Stop()
{
ticker.Tick -= this.RefreshTime;
}
Raise an Use parentheses exactly as if the event were a method. You must supply
To Do this
event. arguments to match the type of the event. Don't forget to check whether

the event is null. For example:
class Ticker
{
public event TickHandler Tick;
...
private void Notify()
{
if (this.Tick != null)
{
this.Tick();
}
}
...
}



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×