[英]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.