有些.NET中的高级特性,比如:委托!
有一种怎么也搞不懂的赶脚...
博客读了好几篇,代码也动手写了,书中的一些介绍也看了,
各种搜索关于委托的,至今还处于"会用"的阶段。
该怎么研究一个高级特性,这是个问题。
还是本来这些特性,你会用就可以了?
语言越多,感觉会越迷惑,
自己想用最少的语言,
最多的代码来总结下委托这个东西;
、delegate
、类似于C++中的函数指针,安全的函数指针,提供了程序回调指定方法的机制。

/委托既可以接受实例方法,也可以接受静态方法;
using System;

namespace _IT200.第6章_高级特性
{
//这是一个委托,就这么简单的声明了,然后知道怎么用就可以了.
//就像年龄小的时候,不会喝酒,长大了喝几次就会喝了...你和委托也就是差一个醉了...
public delegate void 委托我来监视这是第几个方法(int i);
class 委托
{ public void method(int i)
{
Console.WriteLine("这是第{0}个方法..", i);
}
//静态方法
public static void method_static(int i)
{
Console.WriteLine("这是第{0}静态方法...", i);
}
static void Main()
{
Console.WriteLine("委托...");
委托 w = new 委托();
//接受实例方法
委托我来监视这是第几个方法 委托实例 = new 委托我来监视这是第几个方法(w.method);
//接受静态方法
委托我来监视这是第几个方法 委托实例_1 = new 委托我来监视这是第几个方法(method_static);
//本质上,委托的调用其实就是执行了在定义委托时所生成的Invoke方法
委托实例();
//Invoke转到定义是指向→"委托我来监视这是第几个方法"
//Why?因为这个方法是由C#编译器自动帮我们完成的,可以通过Reflector验证一下↓
//:会发现还包含一个名为BeginInvoke和EndInvoke的方法。
委托实例.Invoke();
//委托实例(2); == 委托实例.Invoke(2);
Console.ReadKey();
}
} }

运行结果:

基础知识系列☞C#中→委托的更多相关文章

  1. 基础知识系列☞C#中→属性和字段的区别

    "好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···" 其实本来准备叫"面试系列"... 字段.属性.你先知道的哪个概念? ***我 ...

  2. 基础知识系列☞C#中数组Array、ArrayList和List三者的区别

    数组() #region 数组 //初始化方式_0:先声明再赋值 ]; weekDays_0[] = "Sun"; weekDays_0[] = "Mon"; ...

  3. [WPF 基础知识系列] —— 绑定中的数据校验Vaildation

    前言: 只要是有表单存在,那么就有可能有对数据的校验需求.如:判断是否为整数.判断电子邮件格式等等. WPF采用一种全新的方式 - Binding,来实现前台显示与后台数据进行交互,当然数据校验方式也 ...

  4. [C# 基础知识系列]C#中易混淆的知识点

    一.引言 今天在论坛中看到一位朋友提出这样的一个问题,问题大致(问题的链接为:http://social.msdn.microsoft.com/Forums/zh-CN/52e6c11f-ad28-4 ...

  5. C# 基础知识系列- 10 反射和泛型(二)

    0. 前言 这篇文章延续<C# 基础知识系列- 5 反射和泛型>,继续介绍C#在反射所开发的功能和做的努力.上一篇文章大概介绍了一下泛型和反射的一些基本内容,主要是通过获取对象的类型,然后 ...

  6. C# 基础知识系列- 12 任务和多线程

    0. 前言 照例一份前言,在介绍任务和多线程之前,先介绍一下异步和同步的概念.我们之间介绍的知识点都是在同步执行,所谓的同步就是一行代码一行代码的执行,就像是我们日常乘坐地铁通过安检通道一样,想象我们 ...

  7. 基础知识系列☞Abstract和Virtual→及相关知识

    转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...

  8. 学习javascript基础知识系列第二节 - this用法

    通过一段代码学习javascript基础知识系列 第二节 - this用法 this是面向对象语言中的一个重要概念,在JAVA,C#等大型语言中,this固定指向运行时的当前对象.但是在javascr ...

  9. 学习javascript基础知识系列第三节 - ()()用法

    总目录:通过一段代码学习javascript基础知识系列 注意: 为了便于执行和演示,建议使用chrome浏览器,按F12,然后按Esc(或手动选择)打开console,在console进行执行和演示 ...

随机推荐

  1. Oauth2.0(一):为什么需要 Oauth2.0 协议?

    假设有两家互联网企业 A 和 B,其中 B 是一家提供相片云存储的公司.即 B 的用户可以把相片上传到 B 网站上长期保存,然后可以在不同的设备上查看.某一天,A 和 B 谈成了一项合作:希望 B 用 ...

  2. Linux中实现多网卡绑定总结

    在Linux中实现多网卡绑定 一.原理介绍: 1.什么是bonding? Linux bonding 驱动提供了一个把多个网络接口设备捆绑为单个的网络接口设置来使用.用于网络负载均衡及网络冗余: Li ...

  3. Oracle存储过程入参传入List集合的小例子

    第一步:创建一个对象类型 create or replace type STUDENT as object( id ), name ), age ) ); / 第二步:创建一个数组类型 (任意选择下面 ...

  4. 【Cesium】模型转换和使用(转)

    http://52.4.31.236/convertmodel.html https://blog.csdn.net/UmGsoil/article/details/74572877 var view ...

  5. windows防火墙设置端口开放技巧

    选择“打开或者关闭windows防火墙”把防火墙打开,然后选择“高级设置”,选择“创建规则”来指定端口.(这里也可以在“入站规则”里选择已经存在的端口.) 指定ip开放3389端口 某新服务器,开放8 ...

  6. 使用librtmp进行H264与AAC直播

    libx264 版本是 128libfaac 版本是 1.28 1.帧的划分 1.1 H.264 帧 对于 H.264 而言每帧的界定符为 00 00 00 01 或者 00 00 01. 比如下面的 ...

  7. 开源CMS的比较和选择

    最近就cms系统折腾了一下,主要还是以 构架为主,以下做一个大概的比较: 1. Nuke 一般称为DNN,这是最开始Microsoft发布 的时候,用vb做了一个web的演示例子,最终这个例子发展成了 ...

  8. CentOS下安装vsftpd

    因为FTP的端口是 两个,一个是固定21端口,还有一个任意端口的数据通道.关键是任意端口不好搞. 首先在vsftpd的配置文件中设置 任意端口的范围 [root@localhost root]# vi ...

  9. SpringBoot(十)-- 整合MyBatis

    1.pom.xml 配置maven依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <ar ...

  10. SpringBoot(四)-- 整合Servlet、Filter、Listener

    SpringBoot中有两种方式可以添加 Servlet.Filter.Listener. 1.代码注册 通过ServletRegistrationBean. FilterRegistrationBe ...