簡體   English   中英

將參數傳遞給事件處理程序會產生錯誤

[英]Passing parameter to event handler giving errors

我有一個班級Account 在那我添加了一個稱為Activation的動作,並為其附加了一個事件處理程序。

這是代碼:

public class Account 
{
     public event Action Activation;

     public Account()
     {
          this.Activation += SendActivationEvent;
     }

     private void SendActivationEvent()
     {
           //do something here
     }
}

一切正常。 現在,我想向SendActivationEvent方法添加一個參數。 我已經這樣嘗試過:

 string sourceID = String.Empty;
 this.Activation += SendActivationEvent(sourceID);

 private void SendActivationEvent(string sourceID)
 {
     //do something here
 }

它在SendActivationEvent(sourceID)處給出錯誤

無法將Void類型隱式轉換為System.Action

我該怎么解決?

好吧, Action不接受參數。 使用Action<T> (在您的情況下為Action<String> )代替:

public class Account 
{
  // Note "String"
  public event Action<String> Activation;

  public Account()
  {
     // Assign method i.e. "SendActivationEvent", 
     // not method's result SendActivationEvent(sourceID)
     this.Activation += SendActivationEvent;
  }

  private void SendActivationEvent(string sourceID)
  {
     //TODO: do something here
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM