溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

c#在程序中定義和使用自定義事件的方法

發(fā)布時間:2020-08-27 10:41:00 來源:億速云 閱讀:185 作者:小新 欄目:編程語言

小編給大家分享一下c#在程序中定義和使用自定義事件的方法,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

C#在程序中定義和使用自定義事件的步驟有:首先在類中定義事件,然后再定義事件的參數(shù),在TestClass中來引發(fā)事件最后使用事件

c#在程序中定義和使用自定義事件的方法

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

步驟1:在類中定義事件

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

步驟2:定義事件參數(shù)

注意:事件參數(shù)類TestEventArgs繼承自System.EventArgs

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

步驟3:在TestClass 引發(fā)事件

public class TestClass
{
    // 這個方法引發(fā)事件
    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("按任意鍵引發(fā)事件");
        Console.ReadKey();        
        // 引發(fā)事件
        tc.RaiseTestEvent("通過事件參數(shù)傳遞的字符串");
         
        Console.WriteLine("按任意鍵退出");
        Console.ReadKey();
    }
    private static void Tc_TestEvent(object sender, EventArgs e)
    {
        // 將事件參數(shù)強(qiáng)制轉(zhuǎn)換為TestEventArgs
        TestEventArgs te = (TestEventArgs)e;
        // 顯示事件參數(shù)中的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("按任意鍵引發(fā)事件");
        Console.ReadKey();
        tc.RaiseTestEvent("通過事件參數(shù)傳遞的字符串");
        Console.WriteLine("按任意鍵退出");
        Console.ReadKey();
    }
    private static void Tc_TestEvent(object sender, EventArgs e)
    {
        TestEventArgs te = (TestEventArgs)e;
        Console.WriteLine(te.Message);
    }
}

看完了這篇文章,相信你對c#在程序中定義和使用自定義事件的方法有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI