어떻게 쓰는지를 모르겠네
C# delegate는 그 정반대고 하 씨발...
class Ball {
public event EventHandler BallInPlay;
public void OnBallInPlay(BallEventArgs e) {
EventHandler ballInPlay = BallInPlay;
if (ballInPlay != null)
ballInPlay(this, e);
}
}
And here’s the BallEventArgs class:
class BallEventArgs : EventArgs {
public int Trajectory { get; private set; }
public int Distance { get; private set; }
public BallEventArgs(int trajectory, int distance) {
this.Trajectory = trajectory;
this.Distance = distance;
}
}
저 굵기 표시한 곳이 왜 저 따위로 해놨는지 이해가 안가네..
public event EventHandler BallInPlay;로 선언했는데
EventHandler ballInPlay = BallInPlay; 이 과정을 왜 또 거치는것임?
if (BallInPlay!= null)
BallInPlay(this, e);
이렇게 하면 안됨?
책보니까 극도의 예외처리 상황이 발생할 수 있으니까 따로 복사해서 쓰는거라고 되어있네...
멀티 스레딩 환경일 경우 발생하는 race condition 문제를 예방하기 위한 것으로 판단된다.
선언과 할당 모르냐? 뗄감 ㄱㄱ
난 땔깜은 커녕 취미로 배우는 것임 ㅋㅋ