Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将参数传递给事件处理程序并给出错误_C#_Event Handling_Action_Eventhandler - Fatal编程技术网

C# 将参数传递给事件处理程序并给出错误

C# 将参数传递给事件处理程序并给出错误,c#,event-handling,action,eventhandler,C#,Event Handling,Action,Eventhandler,我有一个class帐户。在这里,我添加了一个名为Activation的操作,并向其附加了一个事件处理程序 代码如下: public class Account { public event Action Activation; public Account() { this.Activation += SendActivationEvent; } private void SendActivationEvent()

我有一个class
帐户
。在这里,我添加了一个名为
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


如何解决此问题?

嗯,
操作
不接受参数。使用
操作
操作
)代替:

公共类帐户
{
//注意“字符串”
公共事件行动激活;
公共帐户()
{
//分配方法,即“SendActivationEvent”,
//非方法的结果SendActivationEvent(sourceID)
this.Activation+=SendActivationEvent;
}
私有void SendActivationEvent(字符串sourceID)
{
//托多:在这里做点什么
}
}
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
  }
}