1.委托(delegate)调用静态方法

委托类似于C++中的函数指针。

某方法仅仅在执行的时候才能确定是否被调用。

是实现事件和回调函数的基础。

面向对象,安全性高.

using System;
using System.IO; namespace IO
{
class Program
{
// 声明一个delegate(委托)
delegate int NumberChanger(int n);
static int num = ;
static void Main(string[] args)
{
// 实例化一个委托,构造函数内是符合要求的静态函数
NumberChanger nc1 = new NumberChanger(AddNum);
// 调用方式与调用方法一致
nc1();
Console.WriteLine(num);
} // 声明一个符合要求的静态方法,该方法的返回值以及参数列表必须与所声明的委托一致 public static int AddNum(int p)
{
num += p;
return num;
}
} }

2.通过委托调用实例化方法

using System;
using System.IO; namespace IO
{
class Program
{
// 声明一个delegate(委托)
delegate int NumberChanger(int n);
static void Main(string[] args)
{
MyClass mc = new MyClass();
NumberChanger nc2 = new NumberChanger(mc.AddNum);
Console.WriteLine(nc2());
} } class MyClass
{
private int num = ;
public int AddNum(int p)
{
num += p;
return num;
}
} }

3. multi-delegete(多重委托)

同时委托调用多个方法

using System;
using System.IO; namespace IO
{
class Program
{
delegate void D(int x);
static void Main(string[] args)
{ D cd1 = new D(C.M1);
cd1(-);
Console.WriteLine();
D cd2 = new D(C.M2);
cd1(-);
Console.WriteLine();
D cd3 = cd1 + cd2;
cd3();
Console.WriteLine(); C c = new C();
D cd4 = new D(c.M3);
cd3 += cd4;
cd3();
Console.WriteLine(); cd3 -= cd4;
cd3();
} } class C
{
public static void M1(int i)
{
Console.WriteLine("C.M1" + i);
} public static void M2(int i)
{
Console.WriteLine("C.M2" + i);
} public void M3(int i)
{
Console.WriteLine("C.M3" + i);
}
} }

MVC09的更多相关文章

  1. MVC-09安全

    部分8:添加安全. MVC应用程序安全性 Models文件夹包含表示应用程序模型的类. Visual Web Developer自动创建AccountModels.cs文件,该文件包含用于应用程序认证 ...

随机推荐

  1. 9.数据分组 group by

    --数据分组 group by --作用:用于 对查询的数据进行分组,并处理 select deptno,job from emp group by deptno,job --1.分组之后,不能将除分 ...

  2. itop4412开发版-安卓系统卸载默认apk使用文档

    itop4412开发版的安卓系统默认不是最高权限,可以看见后面最后一个是$符号,如下图 1,所以 想我们需要进入 root 权限,可以看见后面最后一个是#符号,如下图所示.在这个变换中只需 要在超级终 ...

  3. 三十四、www服务apache进阶

    9.虚拟主机:部署多个站点,每个站点希望用不同的站点域名和站点目录,或者是不同的端口和不同的IP,则需要虚拟主机,简单理解就是一个http服务要配置多个站点,就要虚拟主机. apache虚拟主机分为三 ...

  4. MDS算法及其matlab实现

    问题背景: 在求解MTSP问题的时候,因为已知的为各个巡检点之间路径耗时长度,而这个具体描述采用无向图结构可以很好的描述,在matlab中通过函数(graphallshortestpaths)可以得到 ...

  5. Yahoo!团队:网站性能优化的35条黄金守则

    Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践.他们为此进行了一系列的实验.开发了各种工具.写了大量的文章和博客并在各种会议上参与探讨.最佳实践的核心 ...

  6. Django线上部署实战教程之Nginx+Gunicorn+Django篇

    #############################################   推荐 nginx supervisor gunicorn  配置简单,运维方便. Nginx (engi ...

  7. java连接access的用户名、密码异常Decoding not supported解决

    Java通过ucanaccess对Access数据库.accdb文件连接: public static Connection getConn() { try { String dbURL = &quo ...

  8. highcharts 设置柱子之间的距离 柱子宽度

    plotOption : { column : { // 设置每个柱自身的宽度 pointWidth : // x轴每个点只用一个柱,则这个属性设置的是相邻的两个点的柱之间的间距. // 如果x轴每个 ...

  9. OpenAL介绍

    OpenAL(Open Audio Library)是自由软件界的跨平台音效API,由Loki Software,使用在Windows.Linux 系统上,用在音效缓冲和收听中编码. OpenAL设计 ...

  10. OLED带来全新视觉体验

    2013年1月,在国际消费电子展(CES)上世界首款曲面OLED电视--LG OLED电视亮相,LG Display将曲面与OLED完美结合的面板技术让显示设备的外观和品质都达到了一个全新的高度,惊艳 ...