今天要学的是委托

委托的基本形式

直接上代码

 public delegate int AddDelegate(int x,int y);
class Program
{
static void Main(string[] args)
{
int x=;int y=;
AddDelegate addDelegate = new AddDelegate(Add); int result = addDelegate(x, y);
Console.WriteLine("运行结果是:" + result);
Console.ReadLine();
} static int Add(int x, int y)
{
return x + y;
}
}

上面是最原始的委托。但是有人开始说了,我的委托可能只是用一次,还要这么罗嗦的代码,累死人....;还有人会说,实例化委托会有资源消耗,我不想实例化。于是就有了委托的第二种样式和第三种样式

匿名委托

去掉了静态函数

 public delegate int AddDelegate(int x,int y);
class Program
{
static void Main(string[] args)
{
int x=;int y=; AddDelegate addDelegate1 = new AddDelegate( delegate(int a,int b){
return a + b;
});
int result = addDelegate1(x, y);
Console.WriteLine("运行结果是:" + result);
Console.ReadLine();
}
}

或者lamdba的写法

 public delegate int AddDelegate(int x,int y);
class Program
{
static void Main(string[] args)
{
int x=;int y=; AddDelegate addDelegate2 = (int a, int b) =>
{
return a + b;
};
int result = addDelegate2(x, y);
Console.WriteLine("运行结果是:" + result);
Console.ReadLine();
}
}

随着.net版本的演变,出现了Func和Action,它们其实是.net内部封装好的委托,方便大家使用,详细咱这里就不再介绍了。

.net委托的更多相关文章

  1. HTML 事件(三) 事件流与事件委托

    本篇主要介绍HTML DOM中的事件流和事件委托. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流与事件委托 4 ...

  2. C#基础篇 - 理解委托和事件

    1.委托 委托类似于C++中的函数指针(一个指向内存位置的指针).委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针.简单理解,委托是一种可以把函数当做参数传递的类型.很多情况下,某 ...

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

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

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

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

  5. 9、委托、事件、Lambda

    开始 关于委托,肯定是要有问题的. 第一个问题,委托用来干什么? 看.net中的表述:在.net平台下,委托类型用来定义和相应应用程序中的回调.(回调?处理内存中两个实体双向通信的一种技术.)   第 ...

  6. iOS 委托与文本输入(内容根据iOS编程编写)

    文本框(UITextField) 本章节继续编辑 JXHypnoNerd .文件地址 . 首先我们继续编辑  JXHypnosisViewController.m 修改  loadView 方法,向  ...

  7. C#委托异步调用

    参考页面: http://www.yuanjiaocheng.net/webapi/mvc-consume-webapi-get.html http://www.yuanjiaocheng.net/w ...

  8. JavaScript事件代理和委托(Delegation)

    JavaScript事件代理 首先介绍一下JavaScript的事件代理.事件代理在JS世界中一个非常有用也很有趣的功能.当我们需要对很多元素添加事件的时候,可以通过将事件添加到它们的父节点而将事件委 ...

  9. .NET面试题系列[7] - 委托与事件

    委托和事件 委托在C#中具有无比重要的地位. C#中的委托可以说俯拾即是,从LINQ中的lambda表达式到(包括但不限于)winform,wpf中的各种事件都有着委托的身影.C#中如果没有了事件,那 ...

  10. .NET基础拾遗(4)委托、事件、反射与特性

    Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...

随机推荐

  1. Qt的action控件中采用默认绑定,没有connect显示绑定!!!

    使用qt创建界面时,可以选用代码设计也可以选用qt design来设计.最近看我同事的代码,以前写action都是使用connect链接槽函数的, 网上大多数人都是这样,然后我就纳闷,怎么没有conn ...

  2. win10自带IE上不了网的解决办法

    1.cmd以管理员身份运行powershell. 2.输入以下三条程序. netsh int tcp set heuristics disabled 回车执行后再输入 netsh int tcp se ...

  3. Ubuntu系统下手动释放内存

    有时候,像mongo这种,对内存只吃不吐的,我们要手动释放一下. drop_caches的详细文档如下:Writing to this will cause the kernel to drop cl ...

  4. Python 测试

    (1)import doctest doctest.testmod(verbose=True) (2) pip install tests

  5. modal template

    <div class="modal fade" id="tmp_order_modal" tabindex="-1" role=&qu ...

  6. oracleXE数据库没有公开wm_concat函数, 需要手动添加

    CREATE OR REPLACE TYPE wm_concat_impl AUTHID CURRENT_USER AS OBJECT ( curr_str ), STATIC FUNCTION od ...

  7. 数据库与ORM

    一.数据库的配置 1 django默认支持sqlite,mysql, oracle,postgresql数据库.  <1> sqlite django默认使用sqlite的数据库,默认自带 ...

  8. 二叉树的镜像(python)

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...

  9. 大数据hadoop的伪分布式搭建

    1.配置环境变量JDK配置 1.JDK安装 个人喜欢在 vi ~/.bash profile   下配置 export JAVA_HOME=/home/hadoop/app/jdk1.8.0_91ex ...

  10. 【mybatis基础】mybatis开发dao两种方法

    mybatis是一个支持普通SQL查询,存储过程和高级映射的优秀的持久层的框架,是apache下的顶级项目.mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.mybat ...