代理方法keywordAction与Fun的使用

代理是一种特殊的,指向某个方法模块所在的地址。一般来讲,那个方法模块,能够是一个普通的方法,很多其它的时候,是一团匿名的lamda表达式,即一个匿名方法。如今简单理解一下代理的简写方式,即Actionkeyword。

    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相同,仅仅是对于參数,前几个是传入值,最后一个是返回值。

代理方法keywordAction与Fun的使用

时间: 2024-08-11 21:03:13

代理方法keywordAction与Fun的使用的相关文章

Android模拟器设置网络代理方法

在服务器上启动模拟器的时候加了--http-proxy,但是不起作用.所以搜了下面的方法 四种方法: 一:将网络连接代理设置写入配置数据库 (适合启动模拟器无界面) 1.通过命令行或者通过双击emulatoer可执行文件,打开模拟器 2.在命令行执行adb shell 打开android的控制台 (确保环境变量设置正确,即已经把Android_SDK/tools 添加到了PATH(Linux)/path(Windows)) 3.执行 ls -l /data/data/com.android.pr

mybatis系列笔记(2)---mapper代理方法

mapper代理方法 在我们在写MVC设计的时候,都会写dao层和daoimp实现层,但假如我们使用mapper代理的方法,我们就可以不用先daoimp实现类 当然这得需要遵守一些相应的规则: (1)Usermapper.java接口必须和Usermapper.xml名称相同,且要在同一目录下: (2)mapper.xml中namespace等于mapper接口的地址 (3)Usermapper.java接口中国的方法名和Usermapper.xml中statement的id一致 <!-- 7综

mybatis学习笔记,mapper代理方法的使用

一.开发人员需要完成的任务: mapper.xml映射文件和mapper.java 二.开发规范 1.在mapper.xml中namespace等于mapper接口地址. 2.mapper.java接口中的方法名和mapper.xml中statement的id一致 3.mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致. 4.mapper.java接口中的方法返回值类型和mapper.xml中statement的re

设置警告框样式为带有两个文本输入的警告框,用于收集用户收货地址和联系电话。并选择合适的代理方法,当警告框上的两输入框有一个为空时限制“购买”按钮点击。

收集购物信息  iOS项目 倒计时:588 步骤 /.panel-heading 项目需求 设置警告框样式为带有两个文本输入的警告框,用于收集用户收货地址和联系电话.并选择合适的代理方法,当警告框上的两输入框有一个为空时限制“购买”按钮点击. #import "TableViewController.h" @interface TableViewController ()<UIAlertViewDelegate> @property (nonatomic, strong)

代理方法的使用条件和XIb具体实现步骤

使?用xib封装?一个view的步骤 1. 新建?一个?文件描述?一个的内部结构假设叫做 新建?一个?自定义的类 ?自定义类需要继承?自系统?自带的继承?自哪个类取决于根对象的 3. 新建类的类名最好跟的?文件名保持?一致?比如类名就叫做 将中的控件 和 ?自定义类的?文件 进?行连线 5. 提供?一个类?方法返回?一个创建好的?自定义屏蔽从加载的过程 提供?一个模型属性让外界传递模型数据 7. 重写模型属性的setter?方法,在这?里将模型数据展?示到对应的?子控件上?面 Delegate的

子类继承父类实现父类的代理方法

父类提供虚函数(OC中称为代理方法),子类继承后实现虚函数来实现特定的功能. 父类方法: NumberCount.h 与 NumberCount.m // // NumberCount.h // YXMWeather // // Created by XianMingYou on 15/2/18. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #import <Foundation/Foundation.h> @clas

iOS开发小功能之八:手势的简单使用(6种)以及代理方法

代码: 1 #import "ViewController.h" 2 @interface ViewController () <UIGestureRecognizerDelegate> 4 @property (weak, nonatomic) IBOutlet UIImageView *imageView; 5 @end 7 @implementation ViewController 8 - (void)viewDidLoad { 9 [super viewDidLo

iOS 设计中关于UIScrollViewDelegate的几个代理方法的简单介绍

在ios设计的过程中,对于UIScrollView这个控件对于开发者而言都不会陌生,在处理UI界面的时候我们经常会用到UIScrollView,既然用到了UIScrollView,那么UIScrollView的几个代理方法就无法避免的被使用了.本文并不介绍UIScrollView的相关属性,就介绍几个代理方法. / 此方法在scrollView滑动时会被调用多次,只要scrollView.contentOffset发生改变就会被调用 / (void)scrollViewDidScroll:(UI

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

代理是一种特殊的,指向某个方法模块所在的地址.一般来讲,那个方法模块,可以是一个普通的方法,更多的时候,是一团匿名的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("