中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

事件的好處~實現(xian)對修改(gai)的封閉(bi),對擴展的開放!~續

本文章主要(yao)以上一篇文件的(de)代碼在寫法上進行一個優化,更(geng)(geng)代碼更(geng)(geng)精簡,更(geng)(geng)能發(fa)揮.net 3.5為我們(men)提供的(de)已有功能,呵呵!

首先,為了(le)只有返(fan)回值的(de)委托(tuo)來說,我們是不用再去定義它的(de),完(wan)成可以(yi)用.net提供(gong)的(de)Func<T>這個委托(tuo)來實現

 

同時,這個(ge)委(wei)托(tuo)也(ye)支付多個(ge)輸入參數的(de)(de)情況,和Func<>對應的(de)(de)一個(ge)委(wei)托(tuo)叫(jiao)Action<>,它沒有(you)返回值,可(ke)以由多個(ge)輸入參數,下(xia)面是對Func<> 委(wei)托(tuo)的(de)(de)使(shi)用(yong)實例,同樣使(shi)用(yong)上一篇文(wen)章作(zuo)為例子(zi)

 public class ReturnMessage
    {
        public static event Func<string> ReturnMsg;
        public static string OnReturnMsg()
        {
            if (ReturnMsg != null)
                return ReturnMsg();
            else
                return "默認字符";
        }
    }

我們看到了,代碼(ma)比上(shang)一篇文(wen)章精簡(jian)了一些,在訂(ding)閱(yue)事件(jian)時,同樣(yang)可以使用(yong)匿名方法(fa)來實現

 ReturnMessage.ReturnMsg += delegate() { return "OK"; }; //不要以為(wei)(wei)這(zhe)樣省(sheng)內存空間,它只是代碼(ma)上(shang)(shang)精(jing)簡了,事實上(shang)(shang)系統為(wei)(wei)我們自動建立了一(yi)個(ge)方法

在(zai)觸(chu)發時,和上(shang)一篇(pian)文件沒(mei)有區別,在(zai)這(zhe)里就不列舉代碼(ma)了。

再把Action<>委托(tuo)的例子寫上(shang),代(dai)大家參(can)考

public class ReturnMessage
    {
        /// <summary>
        /// 返回消息事件
        /// </summary>
        public static event Func<string> ReturnMsg;
        /// <summary>
        /// 重定向事件
        /// </summary>
        public static event Action RedirectUrl;

        /// <summary>
        /// 觸發ReturnMsg事件
        /// </summary>
        /// <returns></returns>
        public static string OnReturnMsg()
        {
            if (ReturnMsg != null)
                return ReturnMsg();
            else
                return "默認字符";
        }
        /// <summary>
        /// 觸發OnRedirectUrl事件
        /// </summary>
        public static void OnRedirectUrl()
        {
            if (RedirectUrl != null)
                RedirectUrl();
        }
    }

調用方法:

 ReturnMessage.RedirectUrl += delegate() { Console.WriteLine("去新浪吧(ba)"); };

觸發方法:

ReturnMessage.OnRedirectUrl();

這樣就是我滿意的結果了,呵(he)(he)呵(he)(he)!自(zi)己可以根據業務要(yao)求去寫(xie)重定義的頁(ye)面(mian)地址,呵(he)(he)呵(he)(he)。

posted @ 2012-05-04 11:27  張占嶺  閱讀(1001)  評論(0)    收藏  舉報