.net基础扫盲-小例子串委托、匿名方法、lambda表达式

本文详细解释了C#中的委托概念及其与匿名方法的使用方式,并通过实例展示了如何将方法附加到委托,以及如何使用匿名方法简化代码书写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我把委托理解为:委托是一种方法的格式,当然他也是一种类型。

只要是方法的格式跟委托定义的格式是一样的,那么就可以把该方法附加给该委托。看以下demo

 

声明委托:

<p style="margin:0in;font-family:微软雅黑;font-size:12.0pt"></p><pre name="code" class="csharp">public delegate void Add(int a,int b );


声明一个格式相同的方法:

        static void OtherMethod(int a ,int b)
        {
            Console.WriteLine(a+b);
        }

给类声明一个委托类型的成员变量

public class Person
    {
        public string Name { set; get; }
        public string Age { set; get; }
        public Add MyAdd ;
    }

将方法附加给委托,调用,测试如下:

static voidMain(string[] args)
{
    Person p1 =new Person ();
    p1.MyAdd = OtherMethod;
    p1.MyAdd(7, 8);
 
    Console.ReadLine();
}

控制台输出—— 15

 

如果我们定义的OtherMethod不常用,就没有必要单独声明一个方法。可以用匿名方法,即:在给委托附加方法的时候,直接构造一个跟委托格式相同的匿名方法就可以了:

写法如下:

p1.MyAdd = delegate(inta, int b) { Console.WriteLine(a + b); };

匿名方法,顾名思义,没有方法名,只有方法参数和方法的算法,可真是够简单了。


同样我们也可以直接用lamuda表达式,直接构造一个方法,如下:

 p1.MyAdd = (int a, int b) => {Console.WriteLine(a + b); };

匿名方法和拉姆达表达式的出现,使得写方法变得更加简便了。



评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值