1. public delegate double Delegate_Prod(int a,int b);
  2. class Class1
  3. {
  4. static double fn_Prodvalues(int val1,int val2)
  5. {
  6. return val1*val2;
  7. }
  8. static void Main(string[] args)
  9. {
  10. //Creating the Delegate Instance
  11. Delegate_Prod delObj = new Delegate_Prod(fn_Prodvalues);
  12. Console.Write("Please Enter Values");
  13. int v1 = Int32.Parse(Console.ReadLine());
  14. int v2 = Int32.Parse(Console.ReadLine());
  15. //use a delegate for processing
  16. double res = delObj(v1,v2);
  17. Console.WriteLine ("Result :"+res);
  18. Console.ReadLine();
  19. }
  20. }
  1. namespace ConsoleApplication
  2. {
  3. //定义代理
  4. delegate String Mydelegate();
  5. class temp
  6. {
  7. static void Main(String[] args)
  8. {
  9. //实例化代理
  10. Mydelegate Md = new Mydelegate(AsyncMethod);
  11. //实例一个回调代理
  12. AsyncCallback callback = new AsyncCallback(callbackMethod);
  13. //开始执行异步方法
  14. Md.BeginInvoke(callback, Md);
  15. Console.ReadLine();
  16. }
  17. //异步调用的方法
  18. static String AsyncMethod()
  19. {
  20. Console.WriteLine("异步方法正执行");
  21. String str = "异步调用已结束";
  22. return str;
  23. }
  24.  
  25. //回调方法
  26. static void callbackMethod(IAsyncResult Ias)
  27. {
  28. Mydelegate Md = (Mydelegate)Ias.AsyncState;
  29. String str = Md.EndInvoke(Ias);
  30. Console.WriteLine(str);
  31. }
  32. }
  33. }
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. using System.Threading;
  7. using System.Runtime.Remoting.Messaging;
  8.  
  9. namespace ConsoleTest
  10. {
  11. public delegate int AddHandler(int a,int b);
  12. public class 加法类
  13. {
  14. public static int Add(int a, int b)
  15. {
  16. Console.WriteLine("开始计算:" + a + "+" + b);
  17. Thread.Sleep(); //模拟该方法运行三秒
  18. Console.WriteLine("计算完成!");
  19. return a + b;
  20. }
  21. }
  22.  
  23. public class 同步调用
  24. {
  25. static void Main()
  26. {
  27. Console.WriteLine("===== 同步调用 SyncInvokeTest =====");
  28. AddHandler handler = new AddHandler(加法类.Add);
  29. int result = handler.Invoke(, );
  30.  
  31. Console.WriteLine("继续做别的事情。。。");
  32.  
  33. Console.WriteLine(result);
  34. Console.ReadKey();
  35. }
  36.  
  37. }
  38.  
  39. public class 异步调用
  40. {
  41. static void Main()
  42. {
  43. Console.WriteLine("===== 异步调用 AsyncInvokeTest =====");
  44. AddHandler handler = new AddHandler(加法类.Add);
  45.  
  46. //IAsyncResult: 异步操作接口(interface)
  47. //BeginInvoke: 委托(delegate)的一个异步方法的开始
  48. IAsyncResult result = handler.BeginInvoke(, , null, null);
  49.  
  50. Console.WriteLine("继续做别的事情。。。");
  51.  
  52. //异步操作返回
  53. Console.WriteLine(handler.EndInvoke(result));
  54. Console.ReadKey();
  55. }
  56.  
  57. }
  58.  
  59. public class 异步回调
  60. {
  61. static void Main()
  62. {
  63. Console.WriteLine("===== 异步回调 AsyncInvokeTest =====");
  64. AddHandler handler = new AddHandler(加法类.Add);
  65.  
  66. //异步操作接口(注意BeginInvoke方法的不同!)
  67. IAsyncResult result = handler.BeginInvoke(,,new AsyncCallback(回调函数),"AsycState:OK");
  68.  
  69. Console.WriteLine("继续做别的事情。。。");
  70. Console.ReadKey();
  71. }
  72.  
  73. static void 回调函数(IAsyncResult result)
  74. {
  75.  
  76. //result 是“加法类.Add()方法”的返回值
  77. //AsyncResult 是IAsyncResult接口的一个实现类,引用空间:System.Runtime.Remoting.Messaging
  78. //AsyncDelegate 属性可以强制转换为用户定义的委托的实际类。
  79. AddHandler handler = (AddHandler)((AsyncResult)result).AsyncDelegate;
  80. Console.WriteLine(handler.EndInvoke(result));
  81. Console.WriteLine(result.AsyncState);
  82. }
  83.  
  84. }
  85. }

C# 委托简单例子的更多相关文章

  1. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  2. C#设计模式---观察者模式简单例子

    在开发过程中经常遇到一个模块中的 一个方法调用了其他模块中相关的方法 比如说在一个系统中,如果出现了错误,就调用专门进行错误处理的模块中的方法进行错误处理 而因为错误处理的操作有很多,所以将这些具体的 ...

  3. C#多线程简单例子讲解

    C#多线程简单例子讲解 标签: 多线程c#threadobjectcallbacktimer 分类: C#(7) 转载网址:http://www.knowsky.com/540518.html .NE ...

  4. Hibernate4.2.4入门(一)——环境搭建和简单例子

    一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...

  5. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  6. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  7. 委托的例子,from C# advanced program

    class BubbleSorter { static public void Sort<T>(IList<T> sortArray, Func<T, T, bool&g ...

  8. ko 简单例子

    Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...

  9. mysql定时任务简单例子

    mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9     如果要每30秒执行以下语句:   [sql] update userinfo set endtime = now() WHE ...

随机推荐

  1. SpringBoot定时任务

    代码做定时任务:1.开个线程,线程里面休眠去做 2.使用一些定时任务的框架去做 1.创建TimerTest类 package com.cppdy.service; import org.springf ...

  2. STL的基本操作指令

    list :Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. assign() 给list赋值 back() 返回最后一个元素 b ...

  3. cf1108E2 线段树类似扫描线

    /* 有点像扫描线 思路:从左到右枚举每个点,枚举到点i时,把所有以i为起点的区间的影响删去 再加上以i-1为结尾的区间的影响 */ #include<bits/stdc++.h> usi ...

  4. poj1155 依赖背包

    /* 依赖背包 dp[i][j]表示i结点为根的树选择j个用户时的最大剩余费用 即背包容量是j,价值是最大费用 */ #include<iostream> #include<cstr ...

  5. bzoj 1415

    莫名互测题... 这题一看就是期望dp,可是不会转移,所以考试写50分暴力走人... #include <cstdio> #include <cmath> #include & ...

  6. Selenium CSS定位语法

    大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css的定位 ...

  7. spring cloud Eureka注册中心集群搭建

    1.创建springcloud-eureka maven项目 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0&quo ...

  8. 饮冰三年-人工智能-Python-10之C#与Python的对比

    1:注释 C# 中 单行注释:// 多行注释:/**/ python 中 单行注释:# 多行注释:“““内容””” 2:字符串 C#中 "" 用双引号如("我是字符串&q ...

  9. 饮冰三年-人工智能-linux-01通过VM虚拟机安装contes系统

    先决条件:VM虚拟机的安装.contes系统的镜像文件 1:创建新的虚拟机 2:下一步,稍后安装操作系统 3:选择对应的系统 4:选择对应的路径 至此虚拟机已经创建完成(相当于买了一台新电脑) 5:编 ...

  10. ipmitool获取服务器信息

    https://www.annhe.net/article-2987.html https://blog.csdn.net/wolovexiexiongfei/article/details/8270 ...