委托,曾将让我头疼难以理解

刚开始学习C#的时候,基本语法什么的看一遍,写个demo,就理解了,下回用的时候,就上手了,这个委托看了很多,一直不知道他在何时何地会发挥作用!只记住一个关键词——“delegate”和概念——“ 是表示对具有特定参数列表和返回类型的方法的引用的类型”。

心痒难挠啊啊啊啊啊啊!!!!!!!!!!

最近想起来了,把自己最新的认识写出来,希望大家指正补充.....

基础

关键词:delegate

声明语法:

public delegate 返回值类型 委托名称(参数列表);

实例化:委托名称 实例名称;

个人理解:“委托”顾名思义就是托付给其他人去做,在语言环境下,就是委托给某个对象去做。说白了,就是授权。我把银行卡给了a,并且告诉他我的密码,委托他去帮我取钱(当然,非常信任才行,否则有风险的),a就有权利去取出来我银行卡里面的钱。

在程序里面,是一个道理。

实例演示

演示目标:使用委托,来出了字母。从TextBox里面获取现有值,然后指定委托绑定方法处理,添加到ListBox中。

打开VS2013新建一个winform项目。

新建一个Capital类,在类中只创建一个方法,将字符串转化为大写字母,代码如下:

 public class Capital
    {
        public string fixText(string s)
        {
            return s.ToUpper();
        }
    }

新建一个Lower类,在类中只创建一个方法,将字符串转化为小字母,代码如下:

 public class Lower
    {
        public static string fixText(string s)
        {
            return s.ToLower();
        }
    }

生命委托并且实例化

  private delegate string ftxDelegate(string s);
        ftxDelegate ftx;

省略部分代码。执行效果如下。

DEMO完整代码猛戳这里

访问密码 799c

委托,曾将让我头疼难以理解

时间: 2024-07-29 17:55:14

委托,曾将让我头疼难以理解的相关文章

为什么你的代码如此难以理解

“我到底在想什么?!?” 凌晨1:30分,我正盯着不到一个月前我写的一段代码.当时它看起来像是件艺术品,全部是可理解的,优雅.简单.让人叹为观止.这一切都不再了,明天是我的最后期限,数小时前我发现了一个bug.当时看起来的简单和逻辑再也说不通了.可以肯定的是,如果我写代码,我应该足以聪明到理解代码? 经过了多次这种经历以后,我开始认真思考,为什么我的代码在我编写的时候很清楚.而当我数周或数月后回头看的时候,它们却那么费解. 问题1,过度复杂的心智模型 为了理解当你间隔一段时间返回到你的代码.却发

为什么你的代码如此难以理解(转)

英文原文:Why your code is so hard to understand “我到底在想什么?!?” 凌晨1:30 分,我正盯着不到一个月前我写的一段代码.当时它看起来像是件艺术品,全部是可理解的,优雅.简单.让人叹为观止.这一切都不再了,明天是我的最后期限,数小时前我发现了一个 bug.当时看起来的简单和逻辑再也说不通了.可以肯定的是,如果我写代码,我应该足以聪明到理解代码? 经过了多次这种经历以后,我开始认真思考,为什么我的代码在我编写的时候很清楚.而当我数周或数月后回头看的时候

通过原型链解析js函数一些难以理解的的作用域问题

基本原理 js函数在执行时,系统会创建一个隐式的属性scope,scope中存储的是函数的作用域链. 通过对这个scope的分析,就能解释JavaScript中许多难以理解的问题: 例1: function demo(){} demo(); scope属性是在函数执行时创建,如果这个函数是一个全局函数,他的scope里会保存一个Global object和一个activation object. global object保存的是全局的信息,而activition object保存的是函数内部的

解构委托、事件--我对他们本质的理解

一.委托 1.因为委托是一个特殊的类,所以定义委托和定义类一样,可以在命名空间下定义: namespace _06委托的理解 { public delegate void MyDeleget();//第一一个委托 public class MyClass { };//第一个类 } 2.委托可以看成是一个特殊的集合,所以委托也可以在类的内部定义: public class MyClass2 { public delegate void MyDelegat2();//委托也可以定义在类的内部 } 但

对于委托,我这小菜鸟的理解。

委托是什么,这个个人有个人的理解方式. 我的理解方式就是它是一个中间商. 为什么这么说,待我用代码来解释. 委托奸商类: 1 /// <summary> 2 /// 委托中间人 3 /// </summary> 4 public class DeleageteT 5 { 6 /// <summary> 7 /// 定义一个委托,我能做的某一类事. 8 /// </summary> 9 /// <param name="text"&g

NS3中一些难以理解的常数

摘要:在NS3的学习中,PHY MAC中总有一些常数,需要理解才能修改.如帧间间隔等.那么,本文做个简单分析,帮助大家理解.针对802.11标准中MAC协议.   void WifiMac::Configure80211b (void) { SetSifs (MicroSeconds (10)); SetSlot (MicroSeconds (20)); SetEifsNoDifs (MicroSeconds (10 + 304)); SetPifs (MicroSeconds (10 + 20

委托delegate 泛型委托action&lt;&gt; 返回值泛型委托Func&lt;&gt; 匿名方法 lambda表达式 的理解

1.使用简单委托 namespace 简单委托 { class Program { //委托方法签名 delegate void MyBookDel(int a); //定义委托 static MyBookDel myBookDel; //普通方法 public static void MathBook(int a) { Console.WriteLine("我是数学书" + a); } static void Main(string[] args) { myBookDel += Ma

Android中常用但又难以理解的对象

1.Context Activity是Context一个非直接子类 Context到底代表什么涵义呢?

缓存成神路:Redis读写分离难以理解?一文解析Redis读写分离技术

背景云数据库Redis版不管主从版还是集群规格,replica作为备库不对外提供服务,只有在发生HA的时候,replica提升为master后才承担读写流量.这种架构读写请求都在master上完成,一致性较高,但性能受到master数量的限制.经常有用户数据较少,但因为流量或者并发太高而不得不升级到更大的集群规格. 为满足读多写少的业务场景,最大化节约用户成本,云数据库Redis版推出了读写分离规格,为用户提供透明.高可用.高性能.高灵活的读写分离服务. 架构Redis集群模式有redis-pr