zoukankan      html  css  js  c++  java
  • C#中的委托 Delegate

    C# 中的委托就是用一个方法去调用另一个方法。在使用委托前必须先定义委托。委托的签名必须与方法签名保持一致。此外还有

    必须有一个方法来实现委托与方法的调用(即用一个方法调用委托的方法)

    1、委托
    
    public delegate int DeleMathOperation(int value);  //返回int ,参数 int
    
    2、方法 
    
    public static int DoubleToTwo(int value)  //返回iint ,参数int  ,与委托保持一致
            {
                return value * 2;
            }
    
    3、调用委托方法(用一个方法来调用另一个方法,方法的参数为委托)
    
    public static void ProcessAndDisplayValue(DeleMathOperation action, int value)
            {
                int result = action(value);
                Console.WriteLine("The value is {0} ,and Result is {1}", value, result);
                
            }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Wrox.ProeCSharp.JupiteBank;
    using Wrox.ProeCSharp.VenusBank;
    namespace Wrox.ProeCSharp
    {
        
        class MathOpration
        {
            public static int DoubleToTwo(int value)
            {
                return value * 2;
            }
    
            public static int Squre(int value)
            {
                return value * value;
            }
        }
             
        class Program
        {
            public delegate int DeleMathOperation(int value);
            static void Main(string[] args)
            {
                            DeleMathOperation[] DeleteOp = {MathOpration.DoubleToTwo,MathOpration.Squre };
                for (int i = 0; i < DeleteOp.Length; i++)
                {
                    Console.WriteLine("Using the DeleteOp[{0}]:", i);
                    ProcessAndDisplayValue(DeleteOp[i], 2);
                    ProcessAndDisplayValue(DeleteOp[i], 5);
                    ProcessAndDisplayValue(DeleteOp[i], 10);
                    Console.ReadLine();
                }
            }
    
            public static void ProcessAndDisplayValue(DeleMathOperation action, int value)
            {
                int result = action(value);
                Console.WriteLine("The value is {0} ,and Result is {1}", value, result);
                
            }
        }
    }

  • 相关阅读:
    PHP 反射 ReflectionClass
    go-字符串生成数据库字段
    grpc类型
    ubuntu安装zookeeper集群
    ubuntu安装JDK
    zookeeper分布式读写锁
    golang利用gob序列化struct对象保存到本地(转载)
    golang手动管理内存(转载)
    类json格式字符串打印
    研二寒假---关于Qt&CV曲线算法问题
  • 原文地址:https://www.cnblogs.com/wenjie0904/p/8324468.html
Copyright © 2011-2022 走看看