2016-08-31 7 views
-1

그래서 나는 여러 곳을 보았고 내가하려고하는 것은 작동하지 않는다. 다른 곳에서는 내가해야한다고 말하고있는 것처럼 보이지만. - =성배는 같은 학급에서 나의 이벤트를 발동한다.

private EventHandler statsUpdated; 
    public event EventHandler StatsUpdated 
    { 
     add 
     { 
      if (statsUpdated == null || !statsUpdated.GetInvocationList().Contains(value)) 
      { 
       statsUpdated += value; 
      } 
     } 
     remove 
     { 
      statsUpdated -= value; 
     } 
    } 

    protected virtual void OnStatsUpdated(EventArgs e) 
    { 
     EventHandler Handler = StatsUpdated; 
    } 

내가 erroring StatsUpdated 만 + = 또는 왼쪽에있을 수있는이 말하고있는 라인으로, 아직 OnStatsUpdated 방법에 더 이상 일을 시작 havent 한 : 나는 다음 있습니다. 그러나 동일한 클래스에서 액세스하고 있습니까? 위의 것은 직접 복사 붙여 넣기이며, 지금 바로 코드에 함께 표시됩니다.

내가 뭘 잘못하고 있니?

+4

귀하의 마지막 줄에 간단하게 할 수

protected virtual void OnStatsUpdated(EventArgs e) { var handler = statsUpdated; if (handler != null) handler (this, e); } 

를 사용해야합니까? –

답변

0

실수라고 생각합니다. 마지막 줄을 EventHandler Handler = statsUpdated;

0

으로 변경하십시오. 실제로 이벤트가 실행되지 않습니다. ;``이벤트 핸들러 핸들러 = statsUpdated : 당신이 C# 6을 사용하는 경우를 발사하기 위해, 당신은 안, 당신이

protected virtual void OnStatsUpdated(EventArgs e) 
{ 
    statsUpdated?.Invoke(this, e); 
}