C# 在eventArgs中发送两个字符串的语法
在下面的代码中,我需要知道在引发事件时传递两个字符串的语法C# 在eventArgs中发送两个字符串的语法,c#,event-handling,C#,Event Handling,在下面的代码中,我需要知道在引发事件时传递两个字符串的语法 [PublishEvent("Click")] public event EventHandler<EventArgs<string>> MyEvent; [PublishEvent(“单击”)] 公共事件事件处理程序; 谢谢, Saxon.最干净的方法是创建自己的类,该类派生自EventArgs: public class MyEventArgs : EventArgs {
[PublishEvent("Click")]
public event EventHandler<EventArgs<string>> MyEvent;
[PublishEvent(“单击”)]
公共事件事件处理程序;
谢谢,
Saxon.最干净的方法是创建自己的类,该类派生自
EventArgs
:
public class MyEventArgs : EventArgs
{
private readonly string _myFirstString;
private readonly string _mySecondString;
public MyEventArgs(string myFirstString, string mySecondString)
{
_myFirstString = myFirstString;
_mySecondString = mySecondString;
}
public string MyFirstString
{
get { return _myFirstString; }
}
public string MySecondString
{
get { return _mySecondString; }
}
}
然后像这样使用它:
public event EventHandler<MyEventArgs> MyEvent;
protected virtual void OnMyEvent(string myFirstString, string mySecondString)
{
EventHandler<MyEventArgs> handler = MyEvent;
if (handler != null)
handler(this, new MyEventArgs(myFirstString, mySecondString));
}
公共事件处理程序MyEvent;
要引发事件,您可以执行以下操作:
public event EventHandler<MyEventArgs> MyEvent;
protected virtual void OnMyEvent(string myFirstString, string mySecondString)
{
EventHandler<MyEventArgs> handler = MyEvent;
if (handler != null)
handler(this, new MyEventArgs(myFirstString, mySecondString));
}
受保护的虚拟void OnMyEvent(字符串myFirstString,字符串mySecondString)
{
EventHandler=MyEvent;
if(处理程序!=null)
处理程序(这个,新的MyEventArgs(myFirstString,mySecondString));
}
为EventArgs创建类和扩展,并传递它
public class YourCustomeEvent : EventArgs
{
public string yourVariable {get; }
}
现在您必须像这样提供自定义类
public event EventHandler<YourCustomeEvent> MyEvent;
公共事件处理程序MyEvent;
所有答案都无效吗?