• 委托的写法


    using System;
    
    namespace weituo
    {
        class Program
        {
    
    
    
            static void Main(string[] args)
            {
                Console.WriteLine("Hello World!");
    
                Console.WriteLine("写法一!");
                func1();
                Console.WriteLine();
    
                Console.WriteLine("写法二!");
                func2();
                Console.WriteLine();
    
                Console.WriteLine("写法三!");
                func3();
                Console.WriteLine();
    
    
    
    
    
    
            }
    
    
            #region 委托的方法
    
    
            #region 写法一,需要写出专门委托的函数,需要自定义委托
    
    
    
            /// <summary>
            /// //委托声明 -- 定义一个签名: 支持多个输入参数
            /// </summary>
            /// <param name="In_1"></param>
            /// <param name="In_2"></param>
            /// <param name="In_3"></param>
            /// <returns></returns>
            delegate double MathAction(double In_1, double In_2, double In_3);
    
    
            //执行委托的方法
            static void func1()
            {
                MathAction ma = Double;
                Console.WriteLine(ma(1, 2, 3));
            }
    
            //委托执行的函数,最多支持16个输入参数
            static double Double(double In_1, double In_2, double In_3)
            {
                return In_1 * In_2 * In_3 * 2;
            }
    
    
    
            #endregion
    
            #region 写法二,需要写出专门委托的函数,不需要自定义委托(使用系统委托)
    
    
            //执行委托的方法
            static void func2()
            {
                //最后一个是输出类型,最多支持16个输入类型
                Func<double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double> func = Double16;
                Console.WriteLine(func(4.5, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 1));
    
            }
    
            //委托执行的函数,最多支持16个输入参数
            static double Double16(double In_1, double In_2, double In_3, double In_4, double In_5, double In_6, double In_7, double In_8, double In_9, double In_10, double In_11, double In_12, double In_13, double In_14, double In_15, double In_16)
            {
                return In_1 * In_2 * In_3 * 2;
            }
    
            #endregion
    
            #region 写法三,不需要写出专门委托的函数,不需要自定义委托
    
            static Func<double, double, double, double> result = (In_1, In_2, In_3) => In_1 * In_2 * In_3 * 2;
    
            static Func<double, double, double, double> result4 = (In_1, In_2, In_3) =>
            {
                var ddd = In_1 * 2;
                ddd = In_2 * ddd;
                ddd = In_3 * ddd;
                return ddd;
            };
    
            static void func3()
            {
                //*写法三,不需要写出专门委托的函数,还需要自定义委托 * */
         
    
                Console.WriteLine(result(4.5, 2, 2));
    
                 
                Console.WriteLine(result4(4.5, 2, 2));
    
            }
    
            #endregion
    
            #endregion
        }
    }
    

      

  • 相关阅读:
    使用VideoView开发视频总结
    后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结
    8 Crash Reporting Tools For iOS And Android Apps
    Best Mobile Crash Reporting Software
    How do I obtain crash-data from my Android application?
    ACRA (Automated Crash Reporting for Android)
    Debugging Neural Networks with PyTorch and W&B
    OpenPose MobileNet V1
    Real-time-human-pose-estimation-by-pytorch
    openpose-pytorch
  • 原文地址:https://www.cnblogs.com/lhlong/p/15871292.html
Copyright © 2020-2023  润新知