2016-08-31 3 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

に変更してください。実際にはイベントは発生していません。 ; `` EventHandlerのハンドラ= statsUpdated:あなたがC#6を使用している場合は、それを発射する、あなたはそれがあってはならない、あなたは

protected virtual void OnStatsUpdated(EventArgs e) 
{ 
    statsUpdated?.Invoke(this, e); 
} 
関連する問題