zoukankan      html  css  js  c++  java
  • C#委托类型-(基本使用方法)

    委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。

    这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。

    通常我们会使用  delegate关键字定义委托 如下:

    public delegate int Method(object arg);

    然后 定义一个 函数  definedMethod (参数类型数量和返回值类型 与 定义的委托一致)
    public static int definedMethod(object are)
    {
    	//Do Something
            return 0;
    }

    此时,我们可以把定义的Method看作一个类, definedMethod 函数 看作 Method类 的实例对象
    定义一个需要这个类型函数作为形参的 函数

    private static void UseDelegate(Method method ,object other)
    {
    	method(other);
    }

    public static void main(string arg){
    	UseDelegate(definedMethod, arg)
    }

    这就完成了 委托的实现


    当然若需要传递的 方法实例 ,不需要复用的话,也可以通过 定义匿名方法直接传递

    public static main(string arg){
    	UseDelegate(delegate(object obj){ 
                   //Do Something
                   return 0;
            }, arg)
    }


    完整代码:

        public class Test
        {
            //delegate关键字定义委托 
            public delegate int Method(object arg);
    
            //定义一个 函数  definedMethod (参数类型数量和返回值类型 与 定义的委托一致)
            public static int definedMethod(object arg)
            {
                //Do Something
                return 0;
            }
    
            //定义一个需要这个类型函数作为形参的 函数
            private static void UseDelegate(Method method, object other)
            {
                method(other);
            }
    
            public static void Main(string arg){
    
                //这就完成了 委托的实现
                UseDelegate(definedMethod, arg);
    
                //当然若需要传递的 方法实例 ,不需要复用的话,也可以通过 定义匿名方法直接传递
                UseDelegate(delegate(object objarg){
                    //Do Something
                    return 0;
                }, arg);
            }
        }



  • 相关阅读:
    MFC中注释含义
    数字时钟
    布线问题分支限界法
    精度计算大数阶乘ACM常用算法
    C++库大全
    简单文本编辑器制作windows程序设计雏形
    使用计时器方法2
    MFC常用基本数据类型
    Xcode 代码格式化/自动排版
    android的color值
  • 原文地址:https://www.cnblogs.com/wycm/p/5338912.html
Copyright © 2011-2022 走看看