C# 委托中的匿名方法常用(初始化委托实例)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Examples
{
    delegate int OtherDel(int InParam);
    class Program
    {
        int JiaFa(int x)
        {
            return x + 20;
        }
        static void Main()
        {
            OtherDel del = delegate (int x)
                           {
                               return Convert.ToInt32(x) + 200;
                           };//不是拉姆达表达式的匿名方法前面必须有delegate
                             //相当于插入了一个参数个数为1 ,参数类型为int ,返回值是int的函数/方法

            Program myProgram = new Program();
            del += myProgram.JiaFa;//
            Console.WriteLine("{0}", del(5));
            Console.WriteLine("{0}", del(6));
            Console.ReadLine();
        }

    }
}


// 委托一般用类的静态方法或者实例方法来初始化;
//如果某个方法只是用来初始化委托(只被委托调用),则可以采用匿名方法;
//而不需要采用具名方法
//匿名方法的格式用delegate作为“方法名”
//匿名方法体参数的类型及其个数、修饰符、是否有返回值、返回值的类型由委托的声明格式来决定;
//委托声明如果采用了数组参数,如delegate int OtherDel( int InParam,params int[] myarray),则匿名方法中省略关键字params;
//OtherDel del1 = new OtherDel(对象/类.方法);
//delegate int OtherDel(int InParam);
//static void Main()
//{
//    Program myProgram = new Program();
//    OtherDel del =new OtherDel ( myProgram.JiaFa);
//    Console.WriteLine("{0}", del(5));
//    Console.WriteLine("{0}", del(6));
//    Console.ReadLine();
//}

//int JiaFa(int x)
//{
//    return x + 20;
//}

 

你可能感兴趣的:(C#,后端)