泛型委托


代码实现

  //泛型委托声明
    delegate void GenericDelegate(T t);
   public class GenericDelegate
    {
        public static void InvokeDelegate()
        {
            GenericDelegate genericDelegate = new GenericDelegate(Method1);
            genericDelegate("我是泛型委托1");

            //官方版本(不带返回值)
            Action action = new Action(Method1);
            action("我是泛型委托1");
            //Action

            GenericDelegate genericDelegate1 = new GenericDelegate(Method2);
            genericDelegate1(2);

            //官方版本(带回值)
            Func func = new Func(Method3);
            string ret = func("我是带返回值Func委托");
            Console.WriteLine( ret );
            //Func
        }



        #region 委托方法

        public static void Method1(string str)
        {
            Console.WriteLine(str);
        }

        public static void Method2(int num)
        {
            Console.WriteLine("我是泛型委托2 "+num);
        }

        public static string Method3(string str )
        {
            return str;
        }

        #endregion
    }
C