• C#委托


    C# Delegates: Step by Step

    1.委托的使用与如何调用方法的常规思想背道而驰。在常规方法调用期间,您将创建一个对象,其中包含要调用的方法,调用该方法并传递所需的参数。一切都发生在一个弹出窗口中,包括定义要调用的对象和方法以及调用该调用。通过委派的方法调用采用了不同的方法。它将方法调用的定义和方法的实际调用分为两部分。委托是方法的地址的.NET版本。它们是类型安全的类,用于定义返回类型和参数类型。委托类不仅包含对方法的引用,而且还包含对多个方法的引用。尽管自.NET 2.0以来,代表就已经存在,但今天他们在.NET 4中起着重要的作用。 Lambda表达式与委托直接相关。当参数是委托类型时,可以使用Lambda表达式来实现从委托引用的方法。存在将方法传递给其他方法的情况的委托。

    2.

     1 using System;
     2 public class Test
     3  {
     4   public delegate int CalculationHandler(int x, int y);
     5   static void Main(string[]  args)
     6    {
     7      Math math = new Math();
     8     //create a new instance of the delegate class
     9 
    10      CalculationHandler sumHandler = new CalculationHandler(math.Sum);
    11     //invoke the delegate
    12       int result = sumHandler(8,9);
    13      Console.WriteLine("Result is: " + result);
    14      }
    15    }
    16 
    17  public class Math
    18   {
    19     public int Sum(int x, int y)
    20      {
    21        return x + y;
    22      }
    23   }
    View Code

    封装在委托中的有关方法的信息可以分为两类:方法签名和方法目标。

        方法签名包括有关方法参数的数量和类型以及返回类型的信息。

        方法目标包括方法的名称和方法所在的对象。当我们创建一个封装方法调用的委托对象时,我们必须提供这两套信息。

    3.Demo

     1     public delegate double UnitConversion(double from);
     2 
     3     class QuickDelegateDemo
     4     {
     5         // 2. Define handler method.
     6         public static double FeetToInches(double feet)
     7         {
     8             return feet * 12;
     9         }
    10 
    11         static void Main()
    12         {
    13             // 3. Create delegate instance.
    14             UnitConversion doConversion = new UnitConversion(FeetToInches);
    15 
    16             Console.WriteLine("Feet to Inches Converter");
    17             Console.WriteLine("------------------------
    ");
    18 
    19             Console.Write("Please enter feet:  ");
    20             double feet = Double.Parse(Console.ReadLine());
    21 
    22             // 4. Use delegate just like a method.
    23             double inches = doConversion(feet);
    24 
    25             Console.WriteLine("
    {0} Feet = {1} Inches.
    ", feet, inches);
    26             Console.ReadLine();
    27         }
    28     }
    View Code

    总结:1.委托其实就是类,具体说就是方法类。

  • 相关阅读:
    Activiti流程实例
    Activiti使用步骤 (IDEA)
    工作流简介
    并发编程常见面试题
    navicat自动备份数据,可实现每天定时备份
    MySQL, SQLite 和 PostgreSQL 关于information_schema 的一些查询(表结构,表信息,库信息....)
    GIS相关网站下载全国的GeoJSON格式数据可以到区县级数据
    GIS当中使用uDig打开shp图层,并查看数据结果
    解决Failed to execute goal org.apache.maven.plugins 错误,JDK版本不一致
    Maven插件maven-assembly-plugin进行打包部署
  • 原文地址:https://www.cnblogs.com/youzi-xuchongyou/p/13985597.html
Copyright © 2020-2023  润新知