函数指针和C#代理
来源:互联网 发布:雷洋案真相知乎 编辑:程序博客网 时间:2024/06/05 17:54
先看一段C的面向过程的函数指针代码:
int max(int x,int y)
{
return(x>y?x:y);
}
int min(int x,int y)
{
return(x<y?x:y);
}
int sub(int x,int y)
{
return(x+y);
}
int minus(int x,int y)
{
return(x-y);
}
void test(int(*p)(int,int),
int(*q)(int,int),
int a,
int b)
{
int Int1,Int2;
Int1=(*p)(a,b);
Int2=(*q)(a,b);
printf("%d,/t%d/n",Int1,Int2);
}
int main(int argc, _TCHAR* argv[])
{
test(max,min,10,3);
test(sub,minus,10,3);
return0;
}
再看一段C#的代理代码:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication3
{
classMathClass
{
publicstaticint max(int a, int b)
{
return (a > b ? a : b);
}
publicstaticint min(int a, int b)
{
return (a < b ? a : b);
}
publicstaticint sub(int a, int b)
{
return (a + b);
}
publicstaticint minus(int a, int b)
{
return (a - b);
}
}
classHandler
{
publicdelegateintCalculation(int a, int b);
publicstaticvoid EventHandler(Calculation c1,Calculation c2, int a, int b)
{
int x, y;
x = c1(a, b);
y = c2(a, b);
Console.WriteLine("{0}:{1}/n{2}:{3}",c1.Method.ToString(), x, c2.Method.ToString(),y);
}
}
classProgram
{
staticvoid Main(string[] args)
{
Handler.EventHandler(newHandler.Calculation(MathClass.max), newHandler.Calculation(MathClass.min), 10, 3);
Handler.EventHandler(newHandler.Calculation(MathClass.sub), newHandler.Calculation(MathClass.minus), 10, 3);
Console.ReadKey();
}
}
}
- 函数指针和C#代理
- 从函数指针到代理(C#代理入门)
- 从函数指针到代理(C#代理入门)
- 代理和函数指针的对比
- C函数指针和C#委托
- C#的代理(delegate),可以理解为VC的一个函数指针
- C#中的函数指针
- C#中的函数指针
- C#中的函数指针
- C#中的函数指针
- C#中函数指针
- C#函数指针数组
- c#代理和事件
- 指针函数和函数指针
- 函数指针和指针函数
- 指针函数和函数指针
- 指针函数和函数指针
- 函数指针和指针函数
- WinCE下Touch Panel驱动介绍
- 查看当前日期的农历日期的JS
- Debian下构建嵌入式开发环境
- Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)
- DataColumn 类
- 函数指针和C#代理
- 三猪版opera9.62发布~~
- 本人自己写的一个银行系统
- delphi 操作 utf-8 的xml 有乱码的解决
- ToString()、Convert.ToString()、(string)、as string 的区别
- 在ASP.NET 2.0中开发通配符映射应用程序的一些问题
- jfreechart web例子
- Microsoft Platform SDK 选择
- LinkedIn 架构笔记