c#的委托

delegate委托

委托的定义:将方法作为函数来进行传递。

委托也就是在普通的函数访问修饰符后面多加上delegate,并且没有实现这个函数。

比如:

public delegate void Test();

使用是直接进行赋值操作,如下:

void Start

{

        Test test = Test1;
}

public void Test1()

{

          ...........

}

如果带参数,那么下面赋值的函数也要有参数,即:

public delegate void Test(int a , int b);

void Start

{

        Test test = Test1;
}

public void Test1(int a, int b)

{

          ...........

}

如果带上的是泛型的参数:

public delegate void Test<T>(T a);

void Start

{

        Test<string> test = Test1;
}

public void Test1(sring a)

{

          ...........

}

如果有返回值,那么接入的函数也就要有返回值:

public delegate int Test();

void Start

{

        Test test = Test1;
}

public int Test1()

{

          ...........

          return 1000;

}

上面的调用直接调用test()就可以了。(如果有参数记得传入参数)


Action泛型委托

Action的泛型委托。(需要引用System命名空间)

注意:1.Action委托无返回值。

           2.Action的委托最少无参数,最多16个参数。

           3.Action委托不需要声明,只是需要赋值然后就可以直接调用。(上面的delegate委托是需                要提前声明的)

举例:

void Start

{

        Action test = Test1;
}

public int Test1()

{

          ...........

         

}

接下来是带参数的:

void Start

{

        Action<int,int> test = Test1;(这里Action是泛型的,需要几个参数就写几个,注意对应)
}

public int Test1(int a,int b)

{

          ...........

         

}

上面的调用同样是test()就可以了。(如果有参数记得传入参数)

(注意参数和函数的参数保持一致)


Func泛型委托

接下来是Func泛型委托:(需要引用System命名空间)

注意:1.Func委托必须有返回值。

           2.传入参数最少0个,最多16个。

           3.同样不用声明。

举例:

不带参数的:

void Start

{

        Func<int> test = Test1;
}

public int Test1()

{

          ...........

         return 1000;

}

(注意Func后面至少写一个参数,这个是返回值,如果有多个 ,最后1个为返回值,前面的都为参数)

带参数的:

void Start

{

        Func<int,int,string> test = Test1;
}

public string Test1(int a ,int a)

{

          ...........

         return “返回值”;

}

注意这里Func后面有三个参数,最后一个是返回值的类型,前面的都是函数传入的参数(注意参数和函数的参数保持一致)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值