委托:就是一个方法的类型,下面3个调用情况来详细熟悉一下:

1.调用组合委托

    //委托:就是一个方法的类型
public delegate int TestDelegateStr();
public delegate string TestDelegateInt(int a); public class 委托
{
//实例化委托:需要一个方法来实例化
public static TestDelegateStr tdstr1;
public static TestDelegateInt tdint ; public static void main()
{
tdstr1 = testfunctionStr;
tdstr1 = tdstr1 + testfunction;
int result = tdstr1(); //调用组合委托
Console.WriteLine("result" + result.ToString()); tdint = testfunctionInt;
tdint();
Console.ReadKey();
} public static int testfunction()
{
Console.WriteLine("");
return ;
}
public static int testfunctionStr()
{
Console.WriteLine("");
return ;
}
public static string testfunctionInt(int a)
{
Console.WriteLine("testfunction3");
return " test";
}
}

2.委托之前的赋值:

        public delegate int CalculateDelegate(int a, int b);
public void main()
{
CalculateDelegate cal;
//让用户输入两个参数x和y
//如果x>y,输出x-y
//如果x<=y,输出x+y
int x = ; int y = ;
if (x > y)
{
cal = Minus;
}
else
{
cal = add;
}
int result= cal(x, y);
Console.WriteLine(result.ToString());
} public int add(int a, int b)
{
return a + b;
}
public int Minus(int a, int b)
{
return a - b;
}
}

3.委托delegate和Lambda之前的切换写法:

    public class 委托3
{
public delegate int CalculateDelegate(int a, int b);
public delegate int CalculateDelegate2(int a);
public void main()
{
CalculateDelegate cal;
CalculateDelegate2 cal2;
//让用户输入两个参数x和y
//如果x>y,输出x-y
//如果x<=y,输出x+y
int x = ; int y = ;
if (x > y)
{
cal = delegate (int a, int b) { return a - b; }; //匿名方法
}
else
{
//cal = delegate (int a, int b) { return a + b; };
cal = (int a, int b) => { return a + b; }; //Lambda和上句等价
}
//简化1:如果Lambda方法体中只有一个返回值,那么大括号和return可以省略
cal = (int a, int b) => a + b; //简化2:在Lambda的参数列表中,参数类型可以省略
cal = (a, b) => a + b; //简化3:如果在Lambda参数列表中只有一个参数,那么参数的括号可以省略
cal2 = a => a * a; int result= cal(x, y);
Console.WriteLine(result.ToString());
} }

4.使用委托实现异步执行

C# 委托delegate的基本用法的更多相关文章

  1. Unity 项目中委托Delegate用法案例

    Unity中Delegate的用法场景 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar - ...

  2. C# 委托Delegate(一) 基础介绍&用法

    本文是根据书本&网络 前人总结的. 1. 前言 定义&介绍: 委托Delegate是一个类,定义了方法的类型, 使得可以将方法当做另一个方法的参数来进行传递,这种将方法动态地赋给参数的 ...

  3. 关于C# 委托(delegate)与事件(event)的用法及事例

    C#中的委托和事件对于新手可能会有一点难理解,所以先从一个小例子入手,以便能更好的理解其如何使用.有一个学生每天定闹钟在早上6点起床,所以当每天早上6点的时候,闹钟就会响起来,从而学生才会按时起床. ...

  4. C# 代理/委托 Delegate

    本文转载自努力,努力,努力 1. 委托的定义:委托是函数的封装,它代表一"类"函数.他们都符合一定的签名:拥有相同的参数列表,返回值类型.同时,委托也可以看成是对函数的抽象,是函数 ...

  5. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  6. [C#] C# 知识回顾 - 委托 delegate

    C# 知识回顾 - 委托 delegate [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6031892.html 目录 What's 委托 委托的属性 ...

  7. 为什么不能把委托(delegate)放在一个接口(interface)当中?

    stackoverflow上有人问,为什么不能把委托放在一个接口当中? 投票最多的第一个答案第一句话说,“A Delegate is just another type, so you don't g ...

  8. c# 委托 delegate

    委托是一种存储函数引用的类型,在事件和事件的处理时有重要的用途 通俗的说,委托是一个可以引用方法的类型,当创建一个委托,也就创建一个引用方法的变量,进而就可以调用那个方法,即委托可以调用它所指的方法. ...

  9. 理解委托(delegate)及为什么要使用委托

    理解委托(delegate)及为什么要使用委托 委托:是一种定义方法签名的类型. 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联. 您可以通过委托实例调用方法. 上述为官方说法,理解起来 ...

随机推荐

  1. Python中Selenium模拟JQuery滑动解锁实例

    滑动解锁一直做UI自动化的难点之一,我补一篇滑动解锁的例子,希望能给初做Web UI自动化测试的同学一些思路. 首先先看个例子. https://www.helloweba.com/demo/2017 ...

  2. windows搭建Selenium

    安装 pip install -U selenium 安装浏览器驱动 用不同的浏览器需要安装不同的驱动,驱动放置的路径添加到path中. Firefox geodriver Chrome 下载驱动Ch ...

  3. HTTPoxy漏洞(CVE-2016-5385)复现记录

    漏洞介绍: httpoxy是cgi中的一个环境变量:而服务器和CGI程序之间通信,一般是通过进程的环境变量和管道. CGI介绍 CGI 目前由 NCSA 维护,NCSA 定义 CGI 如下:CGI(C ...

  4. CSRF与平行越权的区别

    .CSRF攻击者不需要登录,越权攻击者也得登录,只是没有做针对性的控制: .CSRF攻击者自己不访问受攻击页面,诱导受害者在登录被攻击系统后点击攻击页面:越权攻击者可以直接访问受攻击页面: .CSRF ...

  5. Nagios基本搭建

    Nagios简述: 1.一款用来监视系统和网络的开源软件 2.利用其从多的插件实现对本机和远端服务的监控 3.当被监控对象异常时,回及时向管理员警告 4.提供一批预设好的监控插件,用户可以直接调用 5 ...

  6. Configure Visual Studio with UNIX end of lines

    As OP states "File > Advanced Save Options", select Unix Line Endings. https://stackove ...

  7. (转)如何学好C++语言

    原文:http://coolshell.cn/articles/4119.html   作者:陈皓 昨天写了一篇如何学好C语言,就有人回复问我如何学好C++,所以,我把我个人的一些学习经验写在这里,希 ...

  8. zoj_2511 Design T-Shirt 贪心

    Design T-Shirt Time Limit: 2 Seconds      Memory Limit: 32768 KB Soon after he decided to design a T ...

  9. log4j 详细解释

    2019独角兽企业重金招聘Python工程师标准>>> 虽然说log4j自己会用,但是还是觉得对配置文件还不是很熟悉,最近看了一个博客,感觉很不多,我提炼出自己的理解. 地址 案例我 ...

  10. centos6.X修改ssh默认端口号

    先查看下服务器端口号范围: # sysctl -a|grep ip_local_port_range net.ipv4.ip_local_port_range = 32768    61000 新ss ...