国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

委托、Lambda表達式、事件系列07,使用EventHandler委托

2019-11-17 02:51:05
字體:
來源:轉載
供稿:網友

委托、Lambda表達式、事件系列07,使用EventHandler委托

談到事件注冊,EventHandler是最常用的。

19EventHandler是一個委托,接收2個形參。sender是指事件的發起者,e代表事件參數。

□ 使用EventHandler實現猜拳游戲

使用EventHandler實現一個猜拳游戲,每次出拳,出剪刀、石頭、布這三者的其中一種。

首先抽象出一個被觀察者,其中提供了事件,提供了執行事件的方法。

    public class FistGame
    {
        public string FistName { get; set; }
        public event EventHandler GuessFist;
        public void Start()
        {
            if (GuessFist != null)
            {
                GuessFist(this, EventArgs.Empty);
            }
        }
    }

以上,在Start方法內部調用事件GuessFist的時候,實參this代表FistGame類本身。

客戶端必須有一個方法和EventHandler的定義保持一致,這樣才可以注冊到FistGame類的EventHandler事件上。

   class PRogram
    {
        static void Main(string[] args)
        {
            FistGame jiandao = new FistGame(){FistName = "剪刀"};
            jiandao.GuessFist += GetFistResult;
            FistGame shitou = new FistGame() { FistName = "石頭" };
            shitou.GuessFist += GetFistResult;
            FistGame bu = new FistGame() { FistName = "布" };
            bu.GuessFist += GetFistResult;
            FistGame finalFist = null;
            var temp = new Random().Next()%3;
            if (temp == 0)
            {
                finalFist = jiandao;
            }
            else if(temp == 1)
            {
                finalFist = shitou;
            }
            else
            {

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平度市| 宁德市| 顺平县| 嵊州市| 青州市| 香格里拉县| 临潭县| 三门县| 泰顺县| 临安市| 吕梁市| 博客| 永济市| 炎陵县| 东山县| 泽普县| 淮阳县| 齐齐哈尔市| 东港市| 滨海县| 东城区| 余江县| 子洲县| 鄱阳县| 阿拉善盟| 贵溪市| 晴隆县| 两当县| 宣威市| 巴东县| 项城市| 定襄县| 香港| 彰武县| 梅河口市| 阿尔山市| 三门峡市| 精河县| 崇礼县| 南宫市| 屏东县|