父节点
77795bea4c
当前提交
ad3c6e6d7e
41
tests/closure_event.aer
普通文件
41
tests/closure_event.aer
普通文件
@ -0,0 +1,41 @@
|
||||
class Button {
|
||||
public callback $OnBeforeClick;
|
||||
public callback $OnAfterClick;
|
||||
public string $Name;
|
||||
|
||||
public void __construct() {
|
||||
$this->Name = 'MyButton';
|
||||
}
|
||||
|
||||
public void Click() {
|
||||
$this->DoBeforeClick();
|
||||
print('Click!');
|
||||
$this->DoAfterClick();
|
||||
}
|
||||
|
||||
private void DoBeforeClick() {
|
||||
if($this->OnBeforeClick) {
|
||||
callback $event = $this->OnBeforeClick;
|
||||
$event($this);
|
||||
}
|
||||
}
|
||||
|
||||
private void DoAfterClick() {
|
||||
if($this->OnAfterClick) {
|
||||
callback $event = $this->OnAfterClick;
|
||||
$event($this);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Program {
|
||||
|
||||
void main() {
|
||||
object $MyWidget = new Button();
|
||||
$MyWidget->OnBeforeClick = void(object $Sender) { print($Sender->Name + ' (Before Click)'); };
|
||||
$MyWidget->OnAfterClick = void(object $Sender) { print($Sender->Name + ' (After Click)'); };
|
||||
$MyWidget->Click();
|
||||
}
|
||||
|
||||
}
|
1
tests/closure_event.exp
普通文件
1
tests/closure_event.exp
普通文件
@ -0,0 +1 @@
|
||||
MyButton (Before Click)Click!MyButton (After Click)
|
正在加载...
x
在新工单中引用
屏蔽一个用户