在eventArgs中发送两个字符串的语法

use*_*440 5 c# event-handling

在下面的代码中,我需要知道在引发事件时传递两个字符串的语法.

 [PublishEvent("Click")]
 public event EventHandler<EventArgs<string>> MyEvent;
Run Code Online (Sandbox Code Playgroud)

谢谢,撒克逊人.

Tho*_*que 19

最干净的方法是创建自己的类,派生自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; }
        }
    }
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

public event EventHandler<MyEventArgs> MyEvent;
Run Code Online (Sandbox Code Playgroud)

要举起活动,您可以这样做:

    protected virtual void OnMyEvent(string myFirstString, string mySecondString)
    {
        EventHandler<MyEventArgs> handler = MyEvent;
        if (handler != null)
            handler(this, new MyEventArgs(myFirstString, mySecondString));
    }
Run Code Online (Sandbox Code Playgroud)