C#中委托的运用
来源:互联网 发布:linux sh 定义变量 编辑:程序博客网 时间:2024/05/21 13:21
个人感觉委托其实说白了就是把一个方法当成参数来进行传递。比如说a,b两个人共同完成一个项目,其中a代码中需要用到b写的一个方法,但是此时b还没有写完,此时a只需要声明一个委托,定义好参数然后先使用,等b写好了再传递给a就可以了(比如类实例化的时候)。
例子:
soundDecoder.cs中需要用到b写的方法,先定义一个委托
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HikPlugin;
namespace SoundDecoder
{
public class SoundDecodeProcesser
{
public delegate int Analyse(short[] buffer, int dvrCameraId);
private Analyse analyse;
//对象初始化的时候可以传递方法
public SoundDecodeProcesser(string dvrPassword, Analyse a)
{
this.dvrPassword = dvrPassword;
this.analyse = a;
}
//使用委托传递的方法
private void RealCallback(short[] tempBuffer,int dvrCameraId )
{
if (analyse != null)
{
analyse(tempBuffer, dvrCameraId);
}
}
}
}
B写好的方法为VolumeAnalysize.cs中的AudioVolume()
则传递方法时
................
SoundDecodeProcesserdecoder = new SoundDecodeProcesser( channel.dvrPassword,
new VolumeAnalysize(channel.id, SoundWarningProcesser.ProcessVolume, getSoundVolume(channel.id), soundPercent).AudioVolume );
................
- C#中委托的运用
- 从面向对象设计谈c#中接口和委托的区别运用
- C#中委托的理解
- C#中委托的演变
- c#中委托是啥样的?
- C#中委托的调用
- c#中委托的使用
- C#中委托的理解
- c#中委托的介绍
- C#中委托的理解
- C#中TIMER的运用
- C#中Socket的运用
- C#中split的运用
- C#中XML的运用
- C#中Socket的运用
- C#中数据库的运用
- c#中operator的运用
- 委托(一)C# 中委托的发展
- A jQuery inline form validation
- [转]UNIX/LINUX 平台可执行文件格式分析
- 非计算机专业想学计算机专业如何下手?
- HttpContext.Current.Request.ServerVariables.AllKeys
- js实现页面跳转的几种方式
- C#中委托的运用
- CodeSmith OracleModel写法
- dynamic_cast、const_cast、static_cast、reinterpret_cast
- 无法共享文件夹的解决方法
- CentOS Mono Jexus 跑Asp.net
- 平台崩溃之operator new异常(十五)-2010-6-10
- 再谈Windows Mobile上的模拟按键操作
- Ubuntu 命令技巧
- dos命令大全