C#委托的学习了解
2024-09-03 13:29:39
C#的委托(Delegate)类似于C\C++的函数指针。委托是存有对某一个方法引用的一种引用变量类型,引用可在运行时被改变。
委托特别用于实现事件和回调方法。所有的委托都派生自System.Delegate类。
委托的声明
委托声明决定了可由该委托引用的方法,委托可指向一个与其有相同标签的方法。
以下是一个委托的声明
public delegate string newDelegate(string str);
该声明表示此委托可以引用任何一个单字符参数的方法并且返回值为bool类型。
声明语法
delegate <return type> <delegatename> (<paramter list>)
委托实例化
委托实例化和实例化类一样,使用new关键字
newDelegate newDelegate = new newDelegate(function);
其中function为被引用的方法名,同一类作用域内只能引用静态的方法
委托的应用
定义一个委托,以及两个方法
public delegate void delegateDemo();
public class FunStudy
{
public void stepOne()
{
Console.WriteLine("步骤一:打开冰箱门");
} public void stepTwo()
{
Console.WriteLine("步骤二:大象装冰箱里");
}
}
static void Main(string[] args)
{
FunStudy funStudy = new FunStudy(); delegateDemo demo = funStudy.stepOne;
demo += funStudy.stepTwo;
demo();
}
执行效果
最新文章
- ENode框架Conference案例分析系列之 - 架构设计
- IE10,11下_doPostBack未定义错误的解决方法
- MVC自动生成数据库【Code-FIrst方式】
- CSS3 让图片镜像对称
- c++英文单词频度统计程序
- [转] matlab saveas 和imwrite的区别
- 关于NopCommerce3.6版的@Html.Widget(“home_page_top”)的说明
- 阅读verilog程序总结
- Tornado,了解一下
- c语言字符数组和指针的经典用法
- 身份证js检测
- static DEVICE_ATTR(val, S_IRUGO | S_IWUSR, hello_val_show, hello_val_store); 的作用
- [转载]github在线更改mysql表结构工具gh-ost
- php 多维数组 array sort 排序 :array_multisort
- VIM简单配置
- 红米3 TWRP-3.2.1-0(android_7.1.2_r29) 刷8.1不提示错误 刷MIUI不再卡屏 修复无系统重启问题 更新于20180316
- java Name [jdbc/myjavadb] is not bound in this Context. Unable to find [jdbc].
- 关于KMP
- Redis 的线程模型
- SpringMVC框架项目在编译运行是常见错误