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



  • 相关阅读:
    SPOJ SAMER08A
    SPOJ TRAFFICN
    CS Academy Set Subtraction
    CS Academy Bad Triplet
    CF Round 432 C. Five Dimensional Points
    CF Round 432 B. Arpa and an exam about geometry
    SPOJ INVCNT
    CS Academy Palindromic Tree
    身体训练
    简单瞎搞题
  • 原文地址:https://www.cnblogs.com/wycm/p/5338912.html
Copyright © 2011-2022 走看看