C# 将参数传递给事件处理程序并给出错误
我有一个classC# 将参数传递给事件处理程序并给出错误,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()
帐户
。在这里,我添加了一个名为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
}
}