首頁  >  文章  >  後端開發  >  c#如何在程式中定義和使用自訂事件

c#如何在程式中定義和使用自訂事件

清浅
清浅原創
2019-03-09 16:50:376909瀏覽

C#在程式中定義並使用自訂事件的方法:先在類別中定義事件;然後定義事件的參數;接著在TestClass中來引發事件;最後使用事件即可。

c#如何在程式中定義和使用自訂事件

C#在程式中定義和使用自訂事件的步驟有:首先在類別中定義事件,然後再定義事件的參數,在TestClass中來引發事件最後使用事件

【推薦課程:C#教學

C#在程式中定義和使用自訂事件可以分為以下幾個步驟:

步驟1:在類別中定義事件

using System;
public class TestClass
{
    //....
    public event EventHandler TestEvent
}

步驟2:定義事件參數

注意:事件參數類別TestEventArgs繼承自System.EventArgs

using System;
public class TestEventArgs : EventArgs
{
    public TestEventArgs() : base() { }
 
    public string Message { get; set; }
}

步驟3:在TestClass 引發事件

public class TestClass
{
    // 这个方法引发事件
    public void RaiseTestEvent(string message)
    {
        if (TestEvent == null) return;
        TestEvent(this, new TestEventArgs { Message = message });
    }
    public event EventHandler TestEvent; 
}

步驟4:使用事件

#
class Program
{
    static void Main(string[] args)
    {
 
        TestClass tc = new TestClass();
        // 挂接事件处理方法
        tc.TestEvent += Tc_TestEvent;
         
        Console.WriteLine("按任意键引发事件");
        Console.ReadKey();        
        // 引发事件
        tc.RaiseTestEvent("通过事件参数传递的字符串");
         
        Console.WriteLine("按任意键退出");
        Console.ReadKey();
    }
    private static void Tc_TestEvent(object sender, EventArgs e)
    {
        // 将事件参数强制转换为TestEventArgs
        TestEventArgs te = (TestEventArgs)e;
        // 显示事件参数中的Message
        Console.WriteLine(te.Message);
    }
}

完整的程序如下

using System;
public class TestClass
{
    public void RaiseTestEvent(string message)
    {
        if (TestEvent == null) return;
        TestEvent(this, new TestEventArgs { Message = message });
    }
 
    public event EventHandler TestEvent; 
}
public class TestEventArgs : EventArgs
{
    public TestEventArgs() : base() { }
 
    public string Message { get; set; }
}
class Program
{
    static void Main(string[] args)
    {
 
        TestClass tc = new TestClass();
        tc.TestEvent += Tc_TestEvent;
        Console.WriteLine("按任意键引发事件");
        Console.ReadKey();
        tc.RaiseTestEvent("通过事件参数传递的字符串");
        Console.WriteLine("按任意键退出");
        Console.ReadKey();
    }
    private static void Tc_TestEvent(object sender, EventArgs e)
    {
        TestEventArgs te = (TestEventArgs)e;
        Console.WriteLine(te.Message);
    }
}

總結:以上就是這篇文章的全部內容了,希望對大家有所幫助。

以上是c#如何在程式中定義和使用自訂事件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn