zoukankan      html  css  js  c++  java
  • C#委托本质探索 二、方法变量测试

    // delegate 一个类型定义关键字,用来定义一个抽象方法.
    // 实例化这个类型的过程中需要传入实例指针.
    // 实例化的结果就是得到一个方法的指针.

    // 使用抽象方法,就是为了把方法实例定义成变量用的.
    // 围绕这个观点,做几个测试.
    // 测试1.抽象方法做为普通变量使用

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Reflection;

    namespace ConsoleApplication1
    {
        delegate string 抽象方法(string 参数);

        class SecondTest
        {
            public 抽象方法 方法变量;

            public SecondTest()
            {
                //想用这个方法变量必须先实例化,那就在类实例化时实例化方法变量
                方法变量 = new 抽象方法(this.方法实体);
            }

            //这里定义一个实体,遵循delegate类型实例化过程必须要传入实例,这段代码是必须要存在的
            public string 方法实体(string 方法参数)
            {
                StringBuilder 工作内容 = new StringBuilder();
                if (方法参数 == "运营魔兽世界")
                {
                    工作内容.AppendLine("安排设备采购");
                    工作内容.AppendLine("招募客服,上岗培训");
                    工作内容.AppendLine("广告宣传");
                    工作内容.AppendLine("游戏上市");
                    工作内容.AppendLine("推出活动");
                    工作内容.AppendLine("…………");
                }
                else if (方法参数 == "处理业内竞争")
                {
                    工作内容.AppendLine("调查竞争对手");
                    工作内容.AppendLine("展开斗争");
                }
                return 工作内容.ToString();
            }

        }

        // 上面的例子,将"方法变量"和"方法实体"都公布为public.使他们在实例test2中都可以看到.
        // 方法实体被外部调用这很简单,也完全可以理解.对象的方法就是用来被调用的.
        // 方法变量被公布了?!!咱们用变量不是只为了定义一次以后只读取.而是要用他存储值记录变化的.
        // 一说到变化,那方法变量值的变化有什么效果呢?
        // 应该是方法变量指针指向变化,也就是指向别的方法了.
        // 咱们再用一个例子来演示这种变化.
    }

    // 调用方法

                string 执行结果;
                SecondTest test2 = new SecondTest();
                //直接调用方法实体
                执行结果 = test2.方法实体("运营魔兽世界");
                Console.WriteLine(执行结果);
                //调用方法变量
                执行结果 = test2.方法变量("处理业内竞争");
                Console.WriteLine(执行结果);

  • 相关阅读:
    Object-C(自学1)
    在vue-cli@3.X中配置代理解决开发环境的跨域问题
    记一次发布/更新npm包的过程及包版本管理
    MAC OS上开启Nginx静态文件服务器
    vuecli3打包部署 非根目录下 配置vue.config.js publicPath
    使用Anywhere开启一个nodejs静态文件服务器
    搭建node服务端并使用express()创建简单数据接口,最后返回前端请求的所需数据
    对正反向代理对理解
    Mac查看Python安装路径和版本
    onBlur方法在iOS和Android平台上的差异
  • 原文地址:https://www.cnblogs.com/ww960122/p/1903951.html
Copyright © 2011-2022 走看看