《C# 白话系列之——白话委托》读后记
今天在博客圆首页看到一篇文章:《C# 白话系列之——白话委托》
http://www.cnblogs.com/djangochina/p/3410002.html#commentform
首先,基于看这篇文章的时候有一些疑问我于是写一篇文章来释疑
OK,LET’S GO
先看代码:
public string GetMessage(string messageType)
{
string ret = ""; switch (messageType)
{
case "error":
ret = "错误消息";
break;
case "warning":
ret = "警告消息";
break;
default:
ret = "未知消息";
break;
}
return ret;
}
这段代码之前说了一句:现在我们有如下一个方法,怎样把这个方法可以赋值给一个变量呢?
于是在此我便疑惑了,为什么要把一个委托赋值给一个变量?赋值给这个变量有什么必要?用于什么场景?
delegate string MessageDelegate(string messageType);
public void Test()
{
MessageDelegate myMessage = GetMessage; string ret = myMessage("error");
}
代码如上,这就是我不明白的。因为在我看来,这段代码如果要赋值给一个变量很简单
string ret = GetMessage("errro");
这样调用就可以,为何还一定要赋值给一个委托再来处理呢?
好了,接下来我们看下面的示例:
void MethodWithCallback(string param1, string param2, SampleDelegate callback)
{
callback("The string is:" + (param1 + param2).ToString());
}
这是一个方法,接下来我们再看下我们定义的委托:
public delegate void SampleDelegate(string message);
接下来实现该委托的方法:
public void DelegateMethod(string message)
{
Response.Write(message);
}
从上面这个示例来看,把一个委托赋值给一个变量这个场景是基本很少的。
而当我们希望传两个参数就希望执行某个方法的时候这个场景对于委托来说有着更多的作用
现在在来看下我们平时传两个参数希望执行某个方法时是如何调用的:
void Method(string param1, string param2)
{
Callback("The string is : " + (param1 + param2).ToString());
} public void Callback(string message)
{
Response.Write(message);
}
好了,就到这里吧。至此卖萌结束!!!
欢迎各位评论,同时有反对的请尽量给个理由,好改正问题
《C# 白话系列之——白话委托》读后记的更多相关文章
- C# 白话系列之——白话委托
今天看到首页有个委托的文章,但大都写的太专业,而且没有实用的例子场景.正好昨天做了一个有关委托的功能,所以也来凑个热闹,用白话掰掰 一.委托是什么 我们都知道数据类型,简单点的如,想给一个变量赋值整数 ...
- [转]大白话系列之C#委托与事件讲解(三)
本文转自:http://www.cnblogs.com/wudiwushen/archive/2010/04/21/1717378.html [我希望大家在看完文章的时候,多做做练习,自己也可以想个场 ...
- JavaScript进阶系列06,事件委托
在"JavaScript进阶系列05,事件的执行时机, 使用addEventListener为元素同时注册多个事件,事件参数"中已经有了一个跨浏览器的事件处理机制.现在需要使用这个 ...
- 委托、Lambda表达式、事件系列05,Action委托与闭包
来看使用Action委托的一个实例: static void Main(string[] args) { int i = 0; Action a = () => i++; a(); a(); C ...
- 委托、Lambda表达式、事件系列03,从委托到Lamda表达式
在"委托.Lambda表达式.事件系列02,什么时候该用委托"一文中,使用委托让代码简洁了不少. namespace ConsoleApplication2 { internal ...
- 大白话系列之C#委托与事件讲解大结局
声明:本系列非原创,因为太精彩才转载,如有侵权请通知删除,原文:http://www.cnblogs.com/wudiwushen/archive/2010/04/20/1698795.html 今天 ...
- 并发系列5-大白话聊聊Java并发面试问题之微服务注册中心的读写锁优化【石杉的架构笔记】
- 白话系列之实现自己简单的mvc式webapi框架
前言:此文为极简mvc式的api框架,只当做入门api的解析方式,并且这里也不算是mvc框架,因为没有view层,毕竟现在大部分都属于前后端分离,当然也可以提供view层,因为只是将view当做文本返 ...
- 并发系列4-大白话聊聊Java并发面试问题之公平锁与非公平锁是啥?【石杉的架构笔记】
随机推荐
- ajax 请求
案例: <html><head><script type="text/javascript">function loadXMLDoc(){var ...
- 关于cornerstone无法上传library文件的问题
在CornerStone中先选中左边的项目: 然后在菜单栏里面选择View->ShowIgnoreItems, 再选择项目中的library文件,点击Add按钮即可上传到服务器:
- 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security Socket Layer)全称 ...
- SharePoint - 添加图片到Survey的某一问题之上
Survey是SharePoint常用功能之一,而曾经被用户多次问到的问题是能否在Survey的某一问题上添加图片,经过查看,SharePoint Survey不提供此方法,只得谷歌之,得一比较懒但又 ...
- Nodejs之WebSocket
文章导读: 一.概述-what's WebSocket? 二.运行在浏览器中的WebSocket客户端+使用ws模块搭建的简单服务器 三.Node中的WebSocket 四.socket.io 五.扩 ...
- Jquery事件委托之Safari
什么是事件委托 事件委托是Jquery中一种事件绑定的方式,不同于常见的事件绑定方式将事件绑定在目标元素上,而是将事件绑定在父级元素上通过事件冒泡来执行绑定函数. //常见的事件绑定(Jquery) ...
- HTML5+开发移动app-mui开发示例
mui 官网:http://dcloudio.github.io/mui/ 说明:希望你可以把官网内容通读一遍,这是以后开发的基础 开始 新建项目 在首页点击新建移动App,如下: 或者在项目管理器内 ...
- 前台传到servlet的乱码问题要怎么处理
- Table of Contents - Jersey
Jersey 1.19.1 Getting Started Get started with Jersey using the embedded Grizzly server Get started ...
- php学习笔记1--开发环境搭建:apache+php+mysql
php开发环境搭建:apache + php + mysql1.下载apache,php及mysql安装包2.安装apache:下载的apache若是.msi可直接双击,按指示一步一步安装:(若操作系 ...