欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c#之事件用法

 更新時間:2022年04月11日 17:29:39   作者:Ruby_Lu  
這篇文章介紹了c#中事件的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

事件基于委托,可以為任何一種委托類型提供一種發(fā)布\訂閱機制。
使用event關(guān)鍵字將一個委托類型定義為事件。
下面通過一個例子介紹事件:

//事件發(fā)布類
        public class PublishEvent
        {
            public delegate string Display(string str);
            public event Display DisplayEvent;

            //客戶端代碼通過調(diào)用這個方法觸發(fā)事件
            public void Shows(string str)
            {
                if (DisplayEvent != null)
                {
                    DisplayEvent(str);
                }
            }

        }

        //事件偵聽類,這個類訂閱事件
        public class Listen1
        {
            public string MakeAlert(string str)
            {
                Console.WriteLine(str + "Listen1");
                return str + "Listen1";
            }
        }
        public class Listen2
        {
            public string ShowMsg(string str)
            {
                Console.WriteLine(str + "Listen2");
                return str + "Listen2";
            }
        }

客戶端代碼:

class Program
        {
            static void Main()
            {
                PublishEvent pe = new PublishEvent();
                Listen1 l1 =  new Listen1();
                Listen2 l2 = new Listen2();

                //變量l1和l2訂閱了事件
                pe.DisplayEvent += l1.MakeAlert;
                pe.DisplayEvent += l2.ShowMsg;

                //觸發(fā)事件
                pe.Shows("事件");

                Console.ReadKey();

            }
        }

事件就是一個特殊的委托(http://www.dbjr.com.cn/article/244051.htm),它是一個用于事件驅(qū)動模型的專用委托.你可以在客戶代碼中直接調(diào)用委托來激發(fā)委托指向的函數(shù),而事件不可以,事件的觸發(fā)只能由服務(wù)代碼自己觸發(fā)。也就是說在你的代碼里委托你不但可以安排誰是它的調(diào)用函數(shù),還可以直接調(diào)用它,而事件不能直接調(diào)用,只能通過某些操作觸發(fā)。除此之此,事件擁有委托的所有功能,包括多播特性。即事件可以有多個事件處理函數(shù),委托同樣也可以是個多播委托.
事件是封裝過的委托實例;委托是類型,事件是實例!
EventHandler<TEventArgs>.NET自帶的委托,也用于定義事件。

到此這篇關(guān)于c#之事件用法的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#語言使用gRPC、protobuf(Google Protocol Buffers)實現(xiàn)文件傳輸功能

    C#語言使用gRPC、protobuf(Google Protocol Buffers)實現(xiàn)文件傳輸功能

    這篇文章主要介紹了C#語言使用gRPC、protobuf(Google Protocol Buffers)實現(xiàn)文件傳輸功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • implicit關(guān)鍵字做自定義類型隱式轉(zhuǎn)換的方法

    implicit關(guān)鍵字做自定義類型隱式轉(zhuǎn)換的方法

    implicit 關(guān)鍵字用于聲明隱式的用戶定義類型轉(zhuǎn)換運算符。如果轉(zhuǎn)換過程可以確保不會造成數(shù)據(jù)丟失,則可使用該關(guān)鍵字在用戶定義類型和其他類型之間進(jìn)行隱式轉(zhuǎn)換,這篇文章就給大家詳細(xì)介紹implicit關(guān)鍵字做自定義類型隱式轉(zhuǎn)換的方法,需要的朋友可以參考下
    2015-08-08
  • C#中的==運算符

    C#中的==運算符

    這篇文章主要介紹了C#中的==運算符,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-06-06
  • Unity實現(xiàn)游戲存檔框架

    Unity實現(xiàn)游戲存檔框架

    這篇文章主要為大家詳細(xì)介紹了Unity實現(xiàn)游戲存檔框架,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • c#友好顯示日期 c#日期datetime使用方法

    c#友好顯示日期 c#日期datetime使用方法

    c# datetime根據(jù)日期顯示幾秒前、幾分前、幾天前、幾月前、幾年前等格式
    2014-01-01
  • C#實現(xiàn)PDF頁面合并的示例代碼

    C#實現(xiàn)PDF頁面合并的示例代碼

    這篇文章主要為大家介紹了如何利用C#及vb.net來實現(xiàn)合并PDF頁面內(nèi)容,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定幫助,感興趣的小伙伴可以了解一下
    2022-04-04
  • C#程序優(yōu)化-有效減少CPU占用率

    C#程序優(yōu)化-有效減少CPU占用率

    本文給大家介紹的是C#程序優(yōu)化的小技巧,通過此方法可以有效的降低CPU的占用率,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • 對C# 多態(tài)的理解

    對C# 多態(tài)的理解

    這篇文章主要介紹了對C# 多態(tài)的理解,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-08-08
  • C#正則表達(dá)式Regex類用法實例分析

    C#正則表達(dá)式Regex類用法實例分析

    這篇文章主要介紹了C#正則表達(dá)式Regex類用法,實例分析了其中比較常見的幾類用法,具有一定的實用價值,需要的朋友可以參考下
    2014-10-10
  • C#實現(xiàn)簡單的計算器功能完整實例

    C#實現(xiàn)簡單的計算器功能完整實例

    這篇文章主要介紹了C#實現(xiàn)簡單的計算器功能,結(jié)合完整實例形式分析了C#實現(xiàn)常見的數(shù)學(xué)運算、進(jìn)制轉(zhuǎn)換等相關(guān)操作技巧與界面布局方法,需要的朋友可以參考下
    2017-08-08

最新評論