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);
            }
        }



  • 相关阅读:
    虚拟化、云计算与超融合的简单总结
    期货量化总结与思考
    易盛内外通用版交易API转websocket
    门诊叫号系统系列-1.语音叫号 .net c#
    六线顺上黑马选股和切割线选股法该如何操作?
    我的总结--强势股的短线战法精髓
    MACD头肩顶/底 = 驱动五浪
    有效突破的三三原则
    5日均线--攻击线
    10日均线--操盘线
  • 原文地址:https://www.cnblogs.com/wycm/p/5338912.html
Copyright © 2011-2022 走看看