委托的初步学习

今天我们休息啦,所以那也没有学习好多的啦,但是前几天我们学习了委托,只是简单地知道了概念,简单的知道委托的参数是一个方法啦,我总是感觉自己没有掌握的啦,所以想有时间啦在总结一下的啦,但是我之前上课听得还太过简单的啦,以至于再多一个方法,顶一个委托类型的参数都不知道,感觉对于委托这个知识点还是要练习的啦,而见天学习的也没有多少啦,现总结一下吧,再好好的想一想啦,下面就简单的总结下我写的例题吧。

一.初步认识委托

    delegate int Method(int a,int b);
    class Program
    {
        static void Main(string[] args)
        {
            Method m = new Method(Add);   //在这里使得委托实例化,然后参数为一个方法
            int num = m(3, 2);           //利用委托的对象给方法的参数赋值
            Console.WriteLine(num);        //输出结果
            Console.ReadKey();
        }
        static int Add(int a,int b)
        {
            return a+b;
        }
    }

这个就是仅仅初步认识什么是委托,按照委托的定义写的一个小例子,其实也没什么意义的啦。

二.定义一个委托了类型的参数

        delegate int DelMethod(int a,int b);
 class Program
    {
        static void Main(string[] args)
        {
            #region MyRegion
            DelMethod del = Add;    //在这里委托可以简写,委托不需要new出来
            Test(3, 2, Add);       //调用方法并赋值
            Console.ReadKey();
        }
        static void Test(int a, int b, DelMethod t)   //在这里需要注意参数可以是一个委托,而t则是一个方法的形参
        {
            Console.WriteLine(t(a, b));     //在这里t相当于是一个方法Add,
        }
            #endregion
        static int Add(int a, int b)
        {
            return a + b;
        }
        static int Minus(int a, int b)
        {
            return a - b;
        }
    }

在这里需要注意的是方法Test中的参数,定义了两个int类型的参数,另外一个可以看出来是一个委托类型的参数,而这个参数是一个方法,在这里参数为形参,这是我应该注意的啦,所以下面就调用了方法传参,在这里需要注意的是,委托相当于一个类型,所以可以定义参数的啦。

三.匿名方法的简单使用

   delegate string DelProcess(string str);
    class Program
    {
        static void Main(string[] args)
        {
            string[] str = { "abcdG","ASKhu","sbhebhJNUI"};
            DelProcess del = delegate(string s)            //在这里是匿名方法的使用
            {
                return s.ToLower();
            };
            StringStr(str,del);                    //调用方法传参数
            for (int i = 0; i < str.Length; i++)            //因为是数组,所以便利输出
            {
                Console.WriteLine(str[i]);
            }
            Console.Read();
        }

        static void StringStr(string[] str, DelProcess del)        //在这里委托传的参数为string,而del参数可以维数组吗?
        {
            for (int i = 0; i < str.Length; i++)
            {
                str[i] = del(str[i]);
            }
        }
        static string ToUpper(string arr)
        {
            return arr.ToUpper();
        }
        static string ToLower(string str)
        {
            return str.ToLower();
        }
    }

在这里我们使用的是一个匿名方法,我定义了一个数组,有点奇怪的是StringStr方法中的del方法,我定义的委托时一个string类型的,在这里为什么可以传数组为参数,在这里还是有点迷茫的啦,感觉学习委托这个还是要好好的练习的啦,多使用几次的啦,嘿嘿。

四.匿名方法吧的单独使用

    class Program
    {
        delegate void DelTest(string s);
        static void Main(string[] args)
        {
            DelTest dt = delegate(string str)      //在这里简单的就是匿名方法
            {
                Console.WriteLine(str);
            };
            dt("a");       //适用对象传参
            Console.Read();
        }
    }

在这里需要注意的是对象传参的啦,嘿嘿,其实就是简单地介绍一下匿名方法,在这里使用其实也没什么意义的啦,都只是初步的介绍一下的啦,以后使用啦可以再这样下例子的基础上面加深理解啦。

好啦,今天的委托的使用就简单的介绍到这里吧,还没有总结玩的啦,我明会继续补充的啦,感觉这个是一定要整明白啦,不能模模糊糊的就过去的啦,嘿嘿。

时间: 2024-10-24 02:25:17

委托的初步学习的相关文章

LinQ的初步学习与总结

嘿嘿,说起来ORM和LinQ,就感觉离我好遥远的,在学校是没有学习的,所以总感觉学习了LinQ就是大神,现在嘛,终于也体会一点,感觉LinQ只是初步学习,没有太难,当然以后使用在项目中就没有这样的简单啦,下面就全面的总结一下LinQ的其中一部分,LinQ有三部分:LinQ TO Object:LinQ TO SQL ;LinQ TO XML.而在这里我先来总结一下LinQ TO Object的学习吧 一.初步认识LinQ to Object static void Main(string[] a

Jquery Easy UI初步学习(二)datagrid的使用

第一篇学的是做一个管理的外框,接着就是数据datagrid绑定了,这里我用asp.net mvc3来做的,主要就是熟悉属性.方法. 打开easyui的demo 就可以看到如下一段代码: 和上篇一样class="easyui-datagrid", data-options="...",这是一样的,其他我在网上查了查,并做了整理 DataGrid 属性 参数名 类型 描述 默认值 title string Datagrid面板的标题 null iconCls strin

初步学习C++:C++的基本概念

开始学习C++,先从最基本的概念开始,让自己有一个系统的知识概念. 1.对象: 在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体.对象可以认为是:数据+操作(对象所能完成的操作表示它的动态行为,也成为方法). 2.类: 在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,类是对具有相同数据结构和相同操作的一类对象的描述. 3.消息: 在面向对象程序设计中,一个对象向另一个对象发出的请求被称为"消息".当对象接收到发向它的

Java深度历险(三) Maven初步学习

这几天接触这个词,很多遍了,只是浅显的体会到它在GXPT中的好处,功能之强大,又通过网络查询了资料进一步的认识学习了,和大家分享. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 在gxpt中的体现 1. 父子关系 一个多模块项目通过一个父POM 引用一个或多个子模块来定义. a. 在父目录中分别创建子项目 b. 父项目,通过以下配置,将子项目关联: 如下: <span style="font-size:18px;"

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助

初步学习nodejs,业余用node写个一个自动创建目录和文件的小脚本,希望对需要的人有所帮助,如果有bug或者更好的优化方案,也请批评与指正,谢谢,代码如下: 1 var fs = require('fs'); 2 var tel = [ 3 "1/2/4/6/a.tpl.html", 4 "1/2/4/7/9/c.tpl.html", 5 "1/3/5/8/b.tpl.html"]; 6 var demo = function (mulu)

状态保持以及AJAX的初步学习

嘿嘿,今天学习的有点迷茫哦,主要学习把验证码使用在登录页面时间的一些逻辑,学习这个时间并没有那么的迷惑哦,可是自己写程序时间倒是有点反应迟钝,不过还好总是在最后搞清楚啦,另外就是一步一步的学习是接近项目期,今天下午学习了ajax,这个使用javascript写起来还是蛮麻烦的,嘿嘿,但是使用jquery实现是非常的简单的,不知道是不是由于我刚接触的原因,下面来总结一下今天学习的内容,感觉今天学习的还是很有必要详细总结的,因为在以后的项目中还是经常会使用的. 一.状态保持 1.cookie的添加与

Jquery Easy UI初步学习(三)数据增删改

第二篇只是学了加载用datagrid加载数据,数据的增删改还没有做,今天主要是解决这个问题了. 在做增删改前需要弹出对应窗口,这就需要了解一下EasyUi的弹窗控件. 摘自:http://philoo.cnblogs.com/ 我的理解,就是panel有的属性Window.dialog都有,同时保留自己的扩展属性方法 , 所以主要展示pannel的属性. Pannel 属性 名称 类型 说明 默认值 title string 显示在Panel头部的标题文字. null iconCls strin

实验1 ASP.NET MVC 4 初步学习

1.添加控制器 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-controller 2.添加视图 http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-view 3.添加模型 http://www.asp.net/mvc/tutorials/mvc-4/getting-sta

Jquery Easy UI初步学习(一)

Easy UI 1.3.2 以前听说Easy UI很不错,当了一个dome,闲着没事就看了一下,也整理一下为了自己更好的记忆,也希望对象我这样小菜有帮助吧 先从后台管理的主页面开始,如要要做主页需要了解以下几项 data-options是jQuery Easyui 最近两个版本才加上的一个特殊属性.通过这个属性,我们可以对easyui组件的实例化可以完全写入到html中,例如: <div class="easyui-dialog" style="width:400px;