• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#的delegate与C的函数指针

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

引子:

一个小示例,希望可以帮助广大侠士们来理解delegate。

在C中的函数指针示例:

 1      #include <stdio.h>
 2   
 3       // 减法运算
 4       int minus(int a, int b) {
 5           return a - b;
 6       }
 7   
 8       // 加法运算
 9       int sum(int a, int b) {
10          return a + b;
11      }
12  
13      // 这个counting函数是用来做a和b之间的计算,至于做加法还是减法运算,由函数的第1个参数决定
14      void counting( int (*p)(int, int) , int a, int b) {
15          int result = p(a, b);
16          printf("计算结果为:%d\n", result);
17      }
18  
19      int main()
20      {
21          // 进行加法运算
22          counting(sum, 6, 4);
23          
24          // 进行减法运算
25          counting(minus, 6, 4);
26          
27          return 0;
28      }

本代码引自:http://www.cnblogs.com/mjios/archive/2013/03/19/2967037.html

此页有详细的关于指向函数的指针的教程,如果对C不是很了解的侠士,可前往一探究竟。

自己写的C#代码:

 1    class UpStatic
 2     {
 3         public delegate int calculate(int a, int b);
 4         public int add(int a, int b)
 5         {
 6             return a + b;
 7         }
 8         public int minus(int a, int b)
 9         {
10             return a - b;
11         }
12         public int multiply(int a, int b)
13         {
14             return a * b;
15         }
16         public int count(int a, int b, calculate c)
17         {
18             int result = c(a, b);
19             return result;
20         }
21 }
22 
23     class Program
24     {
25 
26         static void Main(string[] args)
27         {
28             var test = new UpStatic();
29             int p = test.count(44, 44, test.add);
30             int q = test.count(44, 44, test.minus);
31             int r = test.count(44, 44, test.multiply);
32             Console.WriteLine(p);
33             Console.WriteLine(q);
34             Console.WriteLine(r);
35             Console.Read();
36         }
37     }

悟:

空中楼阁总是令人心神不定,高以下为基。

要打好基础,才能站得稳健。

  


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#通过WebClient/HttpWebRequest实现http的post/get方法发布时间:2022-07-18
下一篇:
C++判断五位以内的对称素数发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap