更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

代理方法关键字Action与Fun的使用

  • 发布:达内
  • 来源:达内
  • 时间:2015-01-13 16:52

 代理是一种特殊的,指向某个方法模块所在的地址。一般来讲,那个方法模块,可以是一个普通的方法,更多的时候,是一团匿名的lamda表达式,即一个匿名方法。现在简单理解一下代理的简写方式,即Action关键字。

class A

{

B b = new B();

public delegate string Show(string result);

public string Execute()

{

Show s = new Show(b.MyShow);

string str = s.Invoke("ttt");

return str;

}

}

class B

{

public string MyShow(string s)

{

return s + ">>>>>>>>>";

}

}

static void Main(string[] args)

{

A a = new A();

a.Execute();

}

这样,使用A的时候,只改变B中MyShow的代码,就能定制A中Execute的执行结果。具有同样功能的代码,我们用Action类型来完成。

class C

{

D d = new D();

Action<STRING> action;

public void Execute()

{

action = d.MyShow2;

action.Invoke("ttt");

}

}

class D

{

public void MyShow2(string s)

{

Console.WriteLine(s + ">>>>>>>>>");

}

}

static void Main(string[] args)

{

A a = new A();

a.Execute();

}

这段代码与上边的代码具有同样的效果。可以看出,从本质上讲,就是Action就是delegate的简化模式,就如果lamda表达式来简化 匿名方法一样。当匿名方法必须要有返回值的时候,我们使用Fun类型来处理。使用方法基本上有Action相同,只是对于参数,前几个是传入值,最后一个 是返回值。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C++设计模试实现-State
下一篇:C++培训:利用C++对象确定性析构的原则来解析单例模式

超全的C语言标识符知识

C指针——指针类型转换

C指针——指针和结构类型的关系

C指针——数组和指针的关系

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省