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;

所有答案都无效吗?