散分:c#(300分)

  • 主题发起人 主题发起人 gauss
  • 开始时间 开始时间
只有菲儿说的还有点样子。这是“委托”。
C#中委托可以用+=方式,但delphi不能。
有C#或是dotnet的朋友,可以联系我。
工作专用QQ号:78128222。
 
C#的事件的核心就是委托(非windows的消息),button.click是标准的windows消息
而C#中的事件说的是在不同的类之间有一些事情发生了(不是windows的事件),定义
捕获它的委托,委托的参数是要响应所发生时间的特定方法。C#中的事件遵循
public-subcribe模式。
 
C#.this == delphi.Self
C#.+= == delphi.事件指针(C#把Button1.OnClick 指向this.Button1_click,由this.Button1_click实现)
C#.EventHandler == delphi.NotifyEvent
定义一个NotifyEvent: mybtnOnClick(Sender: TObject);
Button1.OnClick := mybtnOnClick;
 
Rain2002:
七宗罪已经说得很清楚了,你怎么还在楼下说A==B,C==D的话呢?I服了U!
 
如果你不相信我的话,就请仔细研究一下“+=”的用法。
 
在普通语言中,委托就是函数指针或指向类成员的指针(如C++),但是之所以用
委托是因为不象指针,委托是面向对象和安全的。
举例:
定义事件
public event SecondChangeHandler onSecondChange;
其中SecondChangeHandler是委托类型,是你要关联到这个事件的委托
定义委托
public delegate void SecondChangeHandler(Object clock,
TimerInfoEventArgs timeInformation);
.
.
.
注意
public class DisplayClock
{
public void Subscribe(Clock theClock)
{
theClock.OnSecondChange +=
new Clock.SecondChangeHandler(TimeHasChanged);
//TimeHasChanged是委托的回调方法
}
public void TimeHasChanged(Object theClock,
TimerInfoEventArgs t1)
{
.
.
.
}
}
 
让大家久等了,最近一直没有机会上网,今天看了大家的讨论学到不少!来者有份
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部