Closure event test.
All checks were successful
The build was successful.

This commit is contained in:
Rafal Kupiec 2019-04-08 13:58:40 +02:00
부모 77795bea4c
커밋 ad3c6e6d7e
로그인 계정: belliash
GPG 키 ID: 4E829243E0CFE6B4
2개의 변경된 파일42개의 추가작업 그리고 0개의 파일을 삭제

41
tests/closure_event.aer Normal file
파일 보기

@ -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 Normal file
파일 보기

@ -0,0 +1 @@
MyButton (Before Click)Click!MyButton (After Click)