zoukankan      html  css  js  c++  java
  • 基础知识系列☞C#中→委托

    有些.NET中的高级特性,比如:委托!
    有一种怎么也搞不懂的赶脚...
    博客读了好几篇,代码也动手写了,书中的一些介绍也看了,
    各种搜索关于委托的,至今还处于"会用"的阶段。
    该怎么研究一个高级特性,这是个问题。
    还是本来这些特性,你会用就可以了?
    语言越多,感觉会越迷惑,
    自己想用最少的语言,
    最多的代码来总结下委托这个东西;
    0delegate
    1、类似于C++中的函数指针,安全的函数指针,提供了程序回调指定方法的机制。

    2/委托既可以接受实例方法,也可以接受静态方法;
    using System;
    
    namespace _IT200.第6章_高级特性
    {
        //这是一个委托,就这么简单的声明了,然后知道怎么用就可以了.
        //就像年龄小的时候,不会喝酒,长大了喝几次就会喝了...你和委托也就是差一个醉了...
        public delegate void 委托我来监视这是第几个方法(int i);
        class 委托
        {
    
            public void method(int i)
            {
                Console.WriteLine("这是第{0}个方法..", i);
            }
            //静态方法
            public static void method_static(int i)
            {
                Console.WriteLine("这是第{0}静态方法...", i);
            }
            static void Main()
            {
                Console.WriteLine("委托...");
                委托 w = new 委托();
                //接受实例方法
                委托我来监视这是第几个方法 委托实例 = new 委托我来监视这是第几个方法(w.method);
                //接受静态方法
                委托我来监视这是第几个方法 委托实例_1 = new 委托我来监视这是第几个方法(method_static);
                //本质上,委托的调用其实就是执行了在定义委托时所生成的Invoke方法
                委托实例(0);
                //Invoke转到定义是指向→"委托我来监视这是第几个方法"
                //Why?因为这个方法是由C#编译器自动帮我们完成的,可以通过Reflector验证一下↓
                //:会发现还包含一个名为BeginInvoke和EndInvoke的方法。
                委托实例.Invoke(1);
                //委托实例(2); == 委托实例.Invoke(2);
                Console.ReadKey();
            }
        }
    
    }

    运行结果:

  • 相关阅读:
    postman获取请求响应值
    http常用状态码说明
    postman的Testing examples(测试脚本示例)
    JMeter 如何把上一个请求的结果作为下一个请求的参数 —— 使用正则提取器
    一个绿色版的正则表达式测试工具
    让TinyXML保存文件为UTF-8格式
    TinyXml2 的使用
    Apache Thrift
    解决sqlserver的sql脚本内存不足问题
    一个表的两个字段具有相同的类型。如何仅用SQL语句交换这两列的数据?
  • 原文地址:https://www.cnblogs.com/love-zf/p/5991277.html
Copyright © 2011-2022 走看看