C# 委托及匿名函数
一、 为什么使用委托,代码如下;(注释掉的是没用委托之前的使用方式,没有注释的是使用了委托的)
public delegate string DelProStr(string name);
class Program
{
static void Main(string[] args)
{
//三个需求
//1、将一个字符串数组中每个元素都转换成大写
//2、将一个字符串数组中每个元素都转换成小写
//3、将一个字符串数组中每个元素两边都加上 双引号
string[] names = { "abCDefG", "HIJKlmnOP", "QRsTuvW", "XyZ" };
//ProStToUpper(names);
//ProStrToLower(names);
// ProStrSYH(names); ProStr(names, delegate(string name)
{
return "\"" + name + "\"";
});
for (int i = ; i < names.Length; i++)
{
Console.WriteLine(names[i]);
}
Console.ReadKey();
} public static void ProStr(string[] name, DelProStr del)
{
for (int i = ; i < name.Length; i++)
{
name[i] = del(name[i]);
}
} //public static string StrToUpper(string name)
//{
// return name.ToUpper();
//} //public static string StrToLower(string name)
//{
// return name.ToLower();
//} //public static string StrSYH(string name)
//{
// return "\"" + name + "\"";
//} //public static void ProStToUpper(string[] name)
//{
// for (int i = 0; i < name.Length; i++)
// {
// name[i] = name[i].ToUpper();
// }
//}
//public static void ProStrToLower(string[] name)
//{
// for (int i = 0; i < name.Length; i++)
// {
// name[i] = name[i].ToLower();
// }
//}
//public static void ProStrSYH(string[] names)
//{
// for (int i = 0; i < names.Length; i++)
// {
// names[i] = "\"" + names[i] + "\"";
// }
//} }
二、委托的概念:
把一个方法当作参数传递给另一个方法去执行。
//声明一个委托指向一个函数
public delegate void DelSayHi(string name);
class Program
{
static void Main(string[] args)
{
//DelSayHi del = SayHiEnglish;//new DelSayHi(SayHiEnglish);
//del("张三");
//Console.ReadKey();
//Test("张三", SayHiChinese);
//Test("李四", SayHiEnglish);
//Console.ReadKey();
}
public static void Test(string name,DelSayHi del)
{
del(name); //调用
}
public static void SayHiChinese(string name)
{
Console.WriteLine("吃了么?" + name);
}
public static void SayHiEnglish(string name)
{
Console.WriteLine("Nice to meet you" + name);
}
}
C# 委托及匿名函数的更多相关文章
- 3 委托、匿名函数、lambda表达式
委托.匿名函数.lambda表达式 在 2.0 之前的 C# 版本中,声明委托的唯一方法是使用命名方法.C# 2.0 引入了匿名方法,而在 C# 3.0 及更高版本中,Lambda 表达式取代了匿名方 ...
- 用委托、匿名函数、Lambda的方式输出符合要求的数
最近看了一些博客,对委托和匿名函数和Lambda的方式有了一些更深的理解,在前人的基础上.我也写3个例子 using System; using System.Collections.Generic; ...
- C#匿名委托,匿名函数,lambda表达式
一.类型.变量.实例之间的关系. 类型>变量>实例 类型可以创建变量,实体类可以创建实例,实例可以存储在变量里. 二.委托使用过程: 1.定义委托(写好签名): 2.创建委托变量: 3.给 ...
- CSharp委托与匿名函数
CSharp委托与匿名函数 场景 面对事件处理,我们通常会通过定义某一个通用接口,在该接口中定义方法,然后在框架代码中,调用实现该接口的类实例的方法来实现函数的回调.可能这样来说有些抽象,那我们提供一 ...
- 面向对象的基本特征:封装(接口 、struct、枚举、委托、匿名函数) 继承,多态。
如何理解面向对象的基本特征:封装 我们通过接口 .struct.枚举.委托.泛型.匿名函数的去理解封装 接口 .struct.枚举.委托.泛型.匿名函数有什么区别?我们通过这些IL探究真相,案例如下: ...
- 委托,匿名函数和lambda表达式
很早之前就接触到了委托,但是一直对他用的不是太多,主要是本人是菜鸟,能写的比较高级的代码确实不多,但是最近在看MSDN微软的类库的时候,发现了微软的类库好多都用到了委托,于是决定好好的研究研究,加深一 ...
- 委托、匿名函数与Lambda表达式初步
(以下内容主要来自<C#本质论第三版>第十二章委托和Lambda表达式) 一.委托续 上上周五看了看委托,初步明白了其是个什么,如何定义并调用.上周五准备看Lambda表达式,结果发现C# ...
- 委托、匿名函数、Lambda表达式和事件的学习
委托: 还记得C++里的函数指针么?大家可以点击这里查看一下以前的笔记.C#的委托和C++中的函数指针效果一致. 当我们需要将函数作为对象进行传递和使用时就需要用到委托. 下面我们看一个例子: usi ...
- C#中委托,匿名函数,lamda表达式复习
一.委托 1.就给类比较,类用class声明,委托用delegate声明. 2.委托要指向一个真正的方法. 3.委托的签名,要和指向的方法一样. //1.声明一个委托 public delegate ...
- C#委托(匿名函数)的各种变形写法
static void TestDelegate() { //类C++11风格:指定初始化容量20,使用初始化列表给部分成员赋值 ) { , , , , -, , }; ; i < lst. ...
随机推荐
- 1.3 Services - 服务
服务是一种应用组件,它可以在后台执行耗时的操作,它是没有用户界面的.其它的应用组件都可以开启一个服务,服务开启后,即使用户离开了应用,服务仍然可以在后台运行.此外,绑定到服务的组件可以与服务进行交互, ...
- Java设计模式——观察者模式(事件监听)
最近在看Tomcat和Spring的源码,在启动的时候注册了各种Listener,事件触发的时候就执行,这里就用到了设计模式中的观察者模式. 引-GUI中的事件监听 想想以前在学Java的GUI编程的 ...
- Java实现ZIP解压功能
1.引入依赖 <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant</ar ...
- poj3422 拆点法x->x'建立两条边+最小费用最大流
/** 题目:poj3422 拆点法+最小费用最大流 链接:http://poj.org/problem?id=3422 题意:给定n*n的矩阵,含有元素值,初始sum=0.每次从最左上角开始出发,每 ...
- SpringMVC返回Json,自定义Json中Date类型格式
http://www.cnblogs.com/jsczljh/p/3654636.html —————————————————————————————————————————————————————— ...
- Tuning 07 Optimizing Sort Operations
- Unity3D和网页数据交互的基本原理
简介: 1.Unity3D的游戏引擎是和编辑器集成在一起的,所有它也是一个制作/开发平台. 2.Unity3D是使用JavaScript.C#作为核心脚本语言来驱动事个游戏引擎. 3.平台可以发布Ex ...
- 使用html替代excel导出数据的优势和技巧
之前一直使用NPOI或者微软office官方组件导出excel,但是多多少少会有写小问题,不是数据量不能过大(xls的问题,用xlsx就可以更大了),就是速度慢,或者文件体积太大 中途采用过csv(逗 ...
- PDF解析。。。
解析出PDF中的文字.用项目名称作Key取对应的值.. 正则匹配 .....:..\n
- poj 1129(dfs+图的四色定理)
题目链接:http://poj.org/problem?id=1129 思路:根据图的四色定理,最多四种颜色就能满足题意,使得相邻的两部分颜色不同.而最多又只有26个点,因此直接dfs即可. #inc ...