C#委托基础1——委托基础

简介:

委托和其委托的方法必须具有相同的签名。签名相同:1.参数类型相同 2.参数数量相同 3.返回值一致

例一

 
  1. class Program  
  2. {  
  3.         public delegate int MathMethod(int x, int y);  
  4.          
  5.         public int Add(int a, int b)  
  6.         {  
  7.             return a + b;  
  8.         }  
  9.  
  10.         static void Main(string[] args)  
  11.         {  
  12.             MathMethod mm;  
  13.             Program p = new Program();  
  14.             mm = p.Add;// 相当于一个方法的容器  
  15.             Console.WriteLine("计算结果为{0}",mm(7,6));  
  16.             Console.ReadLine();  
  17.         }  

例二

 

 
  1. class Program  
  2. {  
  3.          
  4.         public delegate double MathMethod(double x, double y);  
  5.  
  6.         double Add(double a, double b)  
  7.         {  
  8.             return a + b;  
  9.         }  
  10.  
  11.         double Subtract(double a, double b)  
  12.         {  
  13.             return a + b;  
  14.         }  
  15.  
  16.         double Multiply(double a, double b)  
  17.         {  
  18.             return a * b;  
  19.         }  
  20.  
  21.         double Divide(double a, double b)  
  22.         {  
  23.             return a / b;  
  24.         }  
  25.  
  26.         void DoCalculate(MathMethod mm)  
  27.         {  
  28.             Console.WriteLine("请输入第一个数");  
  29.             double x = Convert.ToDouble(Console.ReadLine());  
  30.  
  31.             Console.WriteLine("请输入第二个数");  
  32.             double y = Convert.ToDouble(Console.ReadLine());  
  33.  
  34.             Console.WriteLine("结果{0}",mm(x, y));  
  35.             Console.ReadLine();  
  36.              
  37.         }  
  38.  
  39.         static void Main(string[] args)  
  40.         {  
  41.             MathMethod mm;  
  42.             Program p = new Program();  
  43.             mm = p.Divide;  
  44.             p.DoCalculate(mm);  
  45.         }  

 

本文参考自金旭亮老师的《.NET 4.0面向对象编程漫谈》有关代理的内容

C#委托基础系列原于2011年2月份发表在我的新浪博客中,现在将其般至本博客。

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/1070976如需转载请自行联系原作者


woshixuye111

相关文章
C# 委托的实战应用
个人感觉既然是新手接触委托 肯定不喜欢一大串的概念 直接上写法吧 概念问题百度搜一下 大面积雷同随便看 但是写法你们要慎重选择学习
关于C#委托的一些学习笔记
1.什么是委托就是把方法作为参数传给另一个方法。委托说指向的函数,必须和函数具有相同的签名(返回值和参数类型) Public delegate void DelSayHi(string name); Class proglem { Static void Main(string[] ar...
909 0
|
C# 安全 C++
C#基础篇 - 理解委托和事件
委托 委托类似于C++中的函数指针(一个指向内存位置的指针)。委托是C#中类型安全的,可以订阅一个或多个具有相同签名方法的函数指针。简单理解,委托是一种可以把函数当做参数传递的类型。很多情况下,某个函数需要动态地去调用某一类函数,这时候我们就在参数列表放一个委托当做函数的占位符。
1203 0