- 프로젝트 만들기
- 개체 및 변수 참조
- 프로젝트 확장
구독 만들기
Start()
메서드 내에서 구독을 만듭니다.
팁:
새 메서드를 자동으로 삽입하려면:
- Visual Studio에서+=연산자 뒤에 캐럿을 놓고키를 두 번 누릅니다.TAB
- Visual Studio Code에서 편집기 제안을 참조하십시오.
예제
이 예에서
Session_UserChange
메서드는 UserChange
이벤트 처리기와 +=
연산자를 사용하여 사용자 변경 이벤트를 구독합니다.public override void Start() { Session.UserChange += Session_UserChange; }
중요:
메모리 누수를 방지하기 위해 항상
Stop()
메서드에서 구독을 취소합니다. 구독 취소 항목을 참조하십시오.다음 예는
Session_UserChange
메서드를 보여줍니다.private void Session_UserChange(object sender, UserChangeEventArgs e) { Log.Info(e.newUser.BrowseName); }
- sender
- 이벤트의 노드 출처에 해당하는IUAObject개체입니다.
- e
- 이벤트 처리기의 데이터 유형(예제의 경우UserChangeEventArgs)을 기반으로 하는 이벤트 데이터를 포함하는 C# 개체입니다.
이벤트 처리기
이벤트 유형에 따라 다양한 이벤트 처리기를 사용하여 구독을 만듭니다.
- 변수의 값 변경 이벤트
- 변수의 값 변경에 대한 메서드를 구독하려면IUAVariable클래스에서 제공하는VariableChange이벤트 처리기를 사용합니다. IUAVariable.VariableChange 항목을 참조하십시오.
- 개체에 의해 생성된 모든 이벤트
- 개체에서 생성된 모든 이벤트에 메서드를 구독하려면IUAObject클래스에서 제공하는UAEvent이벤트 처리기를 사용합니다. IUAObject.UAEvent 항목을 참조하십시오.
- 개체의 특정 이벤트
- 개체에서 생성된 특정 이벤트에 메서드를 구독하려면 유형에서 제공하는 해당 이벤트 처리기를 사용합니다.이 예에서OnMouseClick이벤트 처리기는Button2를 누를 때마다Button2_OnMouseClick메서드를 실행합니다.OnMouseClick이벤트 처리기는Button클래스에서 제공됩니다.public override void Start() { var button2 = Owner.Get<Button>("Button2"); button2.OnMouseClick += Button2_OnMouseClick; } private void Button2_OnMouseClick(object sender, MouseClickEvent e) { var label2 = Owner.Get<Label>("Label2"); var button = (Button)sender; label2.Text = "Mouse click event on " + button.BrowseName; }
의견을 작성 부탁드립니다.