자신의 이벤트를 정의 할 때마다 다음과 같은 패턴을 사용합니다 (MSDN에서 권장하는 방식은 믿습니다 수행) :
public class MyEventClass { private bool _value; // Backing variable public bool Value { get { return _value; } set { if (value != _value) // Only raise event if value is changed/different { _value = value; OnValueChanged(EventArgs.Empty); } } } public event EventHandler ValueChanged; // Anything can subscribe to the event protected void OnValueChanged(EventArgs e) // Only this and children can invoke event { if (ValueChanged != null) ValueChanged(this, e); } }
따라서 클라이언트 코드는 이벤트를 구독하기 만하면 자동으로 작동합니다.
하지만 특히 EventHandler를 사용하여 이벤트를 발생시키는 클래스에서 EventArgs e
매개 변수를 전달하는 것이 번거 롭습니다. 기본 EventArgs에는 데이터가없고 .
이것을 변경하는 것이 가짜로 간주됩니까?
protected void OnValueChanged() { if (ValueChanged != null) ValueChanged(this, EventArgs.Empty); }
댓글
답변
틀렸나 요? 아니요. 사람들이 코드에 대해 불평하게 만들까요? 아니요.
매개 변수가 무엇인지, 그리고 문제 해결에 도움이 될지 알아 내려고하는 동안 바쁜 개발자를 몇 분 동안 잊게 될까요? 아마도 ..
수업을 더 쉽게 사용할 수 있을까요 …?
표준과 패턴은 쉽게 인식되고 사용 (또는 무시)되기 때문에 유용합니다. 관례에서 벗어나는 것은 당신이 할 수 있기 때문이 아니라 목적을 위해 이루어져야합니다. 이는 대괄호 스타일, 매개 변수 이름 또는 인수 목록에 적용됩니다. 컴파일이 아니라 이유가 있습니다.
PropertyChangedEventArgs
및, 인수로 속성 이름을 전달 하시겠습니까? 아니면 나쁜 예일까요?