zoukankan      html  css  js  c++  java
  • C# Delegate

    1: Declare the Delegate

    delegate  int    DelegateName          (int i, string s);

    Define  return  name of Delegate    delegate need to be handle

     

    2: Use Delegate

    DelegateName func = someFunction

    就 像使用其他任何类型的name一样(int age = something),这里我们declar a 变量func(类型为DelegateName).接下来assign someFunction(这里的function需要与Delegate的返回值一样)。

     

    int result = func(3, "hello");  //然后我们就可以call function就像call普通function一样。这里的int result接受func返回数值,func指向方法someFunction,这里有int 3,和string "hello"传入

    int someFunction(int i, string s)  //Next we need write someFunction callback, 注意格式需要与delegate一致,2个参数,返回值为int

    {

      ...

    }

     

    实例代码:

    Program.cs(Console Project)
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 
     6 namespace UsingDelegate
     7 {
     8     public delegate int NumberFunction(int x);        //Declare the delegate, Name:NumberFunction, have one int and return int
     9     
    10     class Program
    11     {
    12         static void Main(string[] args)
    13         {
    14             NumberFunction f = Square;        //因为我们上面Declare了Delegate,这里我们就可以作为一个变量用。变量f类型NumberFunction,付给了一个同样格式                                                                                    的函数Square。想象下f是指针指向一个methord,现在指向的是Square方法。
    15             Console.WriteLine("resulte of the delegate is {0}", f(5));
    16 
    17             //now change the delegate point
    18             f = Cube;                                        //注意这里赋值要同类型,不要写成Cube(),Call()是类型,而f是delegate类型
    19             Console.WriteLine("resulte of the delegate is {0}", f(5));
    20 
    21             Console.ReadLine();
    22         }
    23 
    24         static int Square(int num)        // Follow the delegate description, take one int and return int
    25         {
    26             return num * num;
    27         }
    28         static int Cube(int num)            // Follow the delegate description, take one int and return int
    29         {
    30             return num * num * num;
    31         }
    32 
    33     }
    34 }

     

     

     

  • 相关阅读:
    winform只允许一个应用程序运行
    IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法
    C#ToString() 格式化数值
    SQLServer2008只能编辑前面200行数据
    Validform验证时可以为空,否则按照指定格式验证
    js操作cookie
    div z-index无论设置多高都不起作用
    Tableau 练习题
    Tableau可视化操作
    Tableau 基础
  • 原文地址:https://www.cnblogs.com/shawnzxx/p/2664642.html
Copyright © 2011-2022 走看看