c# delegate实战

今天学习了一下 委托的知识。下边是源代码    

using System;
using System.Data;
using System.Text;

class programe
{
    public delegate void mydelgatemath();
    static void Main(string[] arg)
    {
        try
        {
            System.Data.DataSet ds = new System.Data.DataSet();
            Console.WriteLine("firat exe");
            Console.WriteLine(ds.ToString());
            baseClass obj = new baseClass();
            baseClass1 obj1 = new baseClass1();

            //委托定义
            mydelgatemath myd = new mydelgatemath(obj.Test);

            //委托定义
            mydelgatemath myd1 = new mydelgatemath(obj1.Test);

            //委托实例化
            //myd.

            //其他地方任意调用
			Console.WriteLine("单个调用委托");
			myd();
            myd1();

			//合并调用
			Console.WriteLine("调用委托链");
            mydelgatemath myd3=  (mydelgatemath)(Delegate.Combine(myd ,myd1));
            myd3();
           
        }
        catch (Exception err)
        {
            Console.WriteLine(err.Message);
        }
    }
    sealed class baseClass
    {
        public void Test()
        {
            string dataStr = System.DateTime.Now.ToString("yyyyMMdd");
            string FdataStr = "今天是" + dataStr.Substring(0, 4) + "年"
                 + dataStr.Substring(4, 2) + "月"
                + dataStr.Substring(6, 2) + "日";
            Console.WriteLine("委托调用" + FdataStr);
        }

    }

    sealed class baseClass1
    {
        public void Test()
        {
            string dataStr = System.DateTime.Now.ToString("yyyyMMdd");
            string FdataStr = "今天是" + dataStr.Substring(0, 4) + "年"
                 + dataStr.Substring(4, 2) + "月"
                + dataStr.Substring(6, 2) + "日";
            Console.WriteLine("委托调用1" + FdataStr);
        }

    }
}


posted @ 2011-12-30 01:04  sdgxboy  阅读(159)  评论(0编辑  收藏  举报