泛型委托

泛型委托

1、Action(无返回值)

Action的定义如下:

public delegate void Action<in T>(T obj);
public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);
public delegate void Action<in T1, in T2, in T3>(T1 arg1, T2 arg2, T3 arg3);

说明:

  1. 输入的参数最多为16个
  2. 只有输入参数,没有返回参数

2、Func(有返回值)

Func的定义如下:

public delegate TResult Func<in T, out TResult>(T arg);
public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
public delegate TResult Func<in T1, in T2, in T3, out TResult>(T1 arg1, T2 arg2, T3 arg3);

说明:

  1. 尖括号内的参数类型,最后一个为返回类型,其他的都是输入类型。即:out TResult。
  2. 输入的参数个数最高没细数,一般情况下肯定够用。

3、用法如下:

public class TestClass
{
    public event Action<string> DoSomethingUsingString;
    public event Func<string,int> DoSomethingToGetLength;
    public TestClass()
    {
        string str = "HelloWorld!";
        if(DoSomethingUsingString != null)
        {
            DoSomethingUsingString(str);
        }
        if (DoSomethingToGetLength != null)
        {
            int iLength = DoSomethingToGetLength(str);
            Console.WriteLine(iLength);
        }
    }
}

CLR读书笔记(2016/6/26 11:26:18)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值