委托,事件,Fuc,,匿名函数,lamda表达式,

这篇博客详细介绍了C#中的委托、匿名函数、Lambda表达式以及事件的概念和用法。通过实例展示了如何声明和使用委托,如何简化代码通过匿名函数和Lambda表达式,以及事件在类之间的通信应用。此外,还探讨了Func函数的定义和使用。这些内容对于理解和提升C#编程能力至关重要。
摘要由CSDN通过智能技术生成

委托

定义:能够存储具有相同参数的方法
将一个方法传入到另一个方法内
委托的用法:

//委托写在类上,命名空间下
//声明委托
public  delegate void 委托名(参数);

//实例化委托//不需要写()
委托名  委托对象=其他方法; 
委托对象(参数); 

匿名函数

相比委托,减少了实例化的步骤
匿名函数的用法:
/匿名函数的返回值类型要和委托的一致,是否有返回值也要一致

//委托的声明,这个跟委托一样
public delegate void 委托名;

委托名 委托对象=delegate(参数)
{
方法体(例如Console.WriteLine())
};  在这里一定要加冒号(;)

luada表达式

定义:就是一个特殊的匿名函数
luada表达式的写法

//定义委托
public delegate void 委托名;

//luama表达式,委托那边有返回类型和返回值,这边相对对应的就要有
委托名 委托对象=(参数l)=>{方法体};
委托对象(传参)

事件,Action

事件是一个特殊的委托,简化了委托。
事件不能有返回值。
事件的书写:

/声明事件
private Action 有返回值时<类型>///  事件名;

事件名   =其他方法的方法名;
//当有返回类型时,判断是否为空
事件名?.Invoke(传参);

实例:

public class jiekou : MonoBehaviour
{
    private delegate void SayHi(string name);
    private Action <string> _actionprint;
    void Start()
    {
        //SayHi sayhi = SayHiChinese;
        _actionprint += SayHiChinese;
        _actionprint?.Invoke("男儿当自强");
        //sayhi("李华");
        
    }
    public static void SayHiChinese(string name)
    {
        print("你好中国"+name);
    }
    public  static void SayHiEnglish(string name)
    {
        print("hello American");
    }
}

Func函数

func的定义:func是一个特殊的匿名函数
func必须要有返回值
func的书写:

///声明
private Func<参数类型(有几个写几个,用逗号隔开),返回的类型> Fuc名;

///
func名=其他函数名;
方法体
例如(值=fuc名.Invoke(传参))

练习

public class jiekou : MonoBehaviour
{
    private Func<string, string, int> _fucnumber;

    void Start()
    {
        _fucnumber += PrintNumber;
        var sum = _fucnumber("12", "16");
        Debug.Log(sum);
    }
    public static int PrintNumber(string s1,string s2)
    {
        int sum = int.Parse(s1) + int.Parse(s2);
        return sum;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值