C#委托、Action、Func、lambda表达式

一、委托
注意:在使用委托的时候,
1、在A要委托B的时候,在B中声明一个委托,在A中赋值委托B,当B中的条件触发时,回调A中的方法
举例:当在一个界面中,在点击滑动列表中的某一项是,在界面中展示该项目详细信息时,可以在滑动列表中创建委托,在展示界面中对滑动列表中的委托进行注册,这样当在点击滑动列表项目的时候,调用委托,传送数据,展示界面数据刷新

1、普通委托不带参数

public class TestAction : MonoBehaviour {

public delegate void TestDelegate();
public TestDelegate test;
void Start () {
    test = ShowTest;
    test();
}

void ShowTest() {
    Debug.Log("普通委托。。。");
}

}

2、普通委托带参数

public class TestAction : MonoBehaviour {

public delegate void TestDelegate(int temp);
public TestDelegate test;
void Start () {
    test = ShowTest;
    test(2);
}

void ShowTest(int temp) {
    Debug.Log("带参数委托委托。。。" + temp);
}

}

3、C# Action 委托,是不带返回值的委托

public class TestAction : MonoBehaviour {

void Start () {
    Action<string> testAction = ShowTest;
    testAction("C# Action 测试!");
}

void ShowTest(string temp) {
    Debug.Log(temp);
}

}

4、C# Func 委托

public class TestAction : MonoBehaviour {

void Start () {
    //Func<string,string>第一个参数是输入类型,第二个返回类型Func<T,TResult>
    Func<string,string> testFunc = ShowTest;
    Debug.Log(testFunc("C# Func 测试!"));
}

String ShowTest(string temp) {
    return temp;
}

}

public class TestAction : MonoBehaviour {

void Start () {
    //如果是一个类型Func<string>,则表示返回类型为string
    Func<string> testFunc = ShowTest;
    Debug.Log(testFunc());
}

String ShowTest() {
    return "C# Func 测试,单个参数是返回类型!";
}

}

5、lambda表达式
注意:主要用于简化函数,代码看起来简洁明了

public class TestAction : MonoBehaviour {

void Start () {
    //第一个参数是传入参数类型,第二个返回委托类型
    Func<int, string> testFunc = test => test + 10 + "--返回类型为string"; 
    Debug.Log(testFunc(2));
}

int ShowTest(int temp) {
    return temp;
}

}

lambda整体写法

public class TestAction : MonoBehaviour {

void Start () {
    Func<int, int, bool> test = (p, k) => {
        if (p + k == 10)
        {
            return true;
        }
        else {
            return false;
        }
    };
    Debug.Log("lambda 表达式,返回值测试 " + test(8,8));
}

}
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值