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

时间:2012-09-19 16:01:16

标签: c# event-handling

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

 [PublishEvent("Click")]
 public event EventHandler<EventArgs<string>> MyEvent;

谢谢, 撒克逊。

2 个答案:

答案 0 :(得分: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; }
        }
    }

并像这样使用它:

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));
    }

答案 1 :(得分:2)

制作你的课程并为EventArgs扩展,并传递它

public class YourCustomeEvent : EventArgs
{
   public string yourVariable {get; }
}

现在你必须像这样提供你的自定义类

 public event EventHandler<YourCustomeEvent> MyEvent;
相关问题