1. 程式人生 > 其它 >泛型委託

泛型委託

程式碼實現

  //泛型委託宣告
    delegate void GenericDelegate<T>(T t);
   public class GenericDelegate
    {
        public static void InvokeDelegate()
        {
            GenericDelegate<string> genericDelegate = new GenericDelegate<string>(Method1);
            genericDelegate("我是泛型委託1");

            //官方版本(不帶返回值)
            Action<string> action = new Action<string>(Method1);
            action("我是泛型委託1");
            //Action<string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string>

            GenericDelegate<int> genericDelegate1 = new GenericDelegate<int>(Method2);
            genericDelegate1(2);

            //官方版本(帶回值)
            Func<string, string> func = new Func<string, string>(Method3);
            string ret = func("我是帶返回值Func委託");
            Console.WriteLine( ret );
            //Func<string, string, string, string, string, string, string, string, string, string, string, string, string, string, string, string,string>
        }



        #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
    }