代理的基本使用方法
2007-07-27 12:07
423 查看
c# 中,取消了c和c++中使用最灵活,也是最难掌握的指针。那么在c#中如何提供c/c++中的函数指针的功能?c#提供了委托(delegate),委托是继承自System.Delegate类的引用类型。它相当于函数指针原型。与函数指针不同的是,委托在c#中是类型安全的,委托特别适合于匿名调用。要使用委托需经过三个步骤,即声明、实例化、调用。
using System;
//声明一个名为mfDelegate的委托,该委托有一个string类型的参数
//c#编译器编译时会产生一个新类,该类继承自System.Delegate,类
//名为mfDelegate
public delegate void mfDelegate(string name);
public class MikeCat {
//定义与mfDelegate有相同参数类型的方法Hello()
public static void Hello(string name) {
Console.WriteLine("您好,{0}!",name);
}
//定义与mfDelegate有相同参数类型的方法GoodBye()
public static void GoodBye(string name){
Console.WriteLine("再见,{0}!",name);
}
public static void Main()
{
//创建一个mfDelegate实例 mf1
mfDelegate mf1=new mfDelegate(Hello);
//调用mf1
mf1("mikecat");
mfDelegate mf2=new mfDelegate(GoodBye);
mf2("mikecat");
//将mf1 mf2组合成一个新的委托mf3
mfDelegate mf3=mf1+mf2;
//调用mf3
mf3("迈克老猫");
//从组合的委托mf3中删除mf1
mfDelegate mf4=mf3-mf1;
mf4("mikecat");
}
程序结果:
您好,mikecat!//mf1;
再见,mikecat!//mf2
您好,迈克老猫! 再见,迈克老猫!//mf3
再见,mikecat!//mf4
using System;
//声明一个名为mfDelegate的委托,该委托有一个string类型的参数
//c#编译器编译时会产生一个新类,该类继承自System.Delegate,类
//名为mfDelegate
public delegate void mfDelegate(string name);
public class MikeCat {
//定义与mfDelegate有相同参数类型的方法Hello()
public static void Hello(string name) {
Console.WriteLine("您好,{0}!",name);
}
//定义与mfDelegate有相同参数类型的方法GoodBye()
public static void GoodBye(string name){
Console.WriteLine("再见,{0}!",name);
}
public static void Main()
{
//创建一个mfDelegate实例 mf1
mfDelegate mf1=new mfDelegate(Hello);
//调用mf1
mf1("mikecat");
mfDelegate mf2=new mfDelegate(GoodBye);
mf2("mikecat");
//将mf1 mf2组合成一个新的委托mf3
mfDelegate mf3=mf1+mf2;
//调用mf3
mf3("迈克老猫");
//从组合的委托mf3中删除mf1
mfDelegate mf4=mf3-mf1;
mf4("mikecat");
}
程序结果:
您好,mikecat!//mf1;
再见,mikecat!//mf2
您好,迈克老猫! 再见,迈克老猫!//mf3
再见,mikecat!//mf4
相关文章推荐
- ios UITextField文本框基本使用,以及所有代理方法的作用
- iOS中的导航条UINavigationController(UISegmentedControl)的基本使用(界面中传值的3中方法,单例,属性,代理)
- iosUIScrollView以及UIPageControl的基本使用以及所有代理方法
- 代理服务器基本知识普及代理IP使用方法!
- 代理服务器基本知识普及代理IP使用方法!(转)
- UIScrollView的基本使用和一些常用代理方法
- iOS开发——网络篇——NSURLSession,下载、上传代理方法,利用NSURLSession断点下载,AFN基本使用,网络检测,NSURLConnection补充
- UI 基础----UIScrollView 的基本属性使用以及代理的使用方法
- 终端下使用lantern代理方法
- Git基本使用方法——clone项目到本地
- Android中SharedPreferences基本使用方法
- fastjson 基本使用方法
- 【Maven学习笔记系列之仓库】走进Maven仓库和镜像,了解基本的使用方法
- net 2.0下的asp.net ajax基本使用方法 (备忘)
- selenium 常见基本方法使用一
- Emacs中宏的基本使用方法
- 【Objective-C】OC中自动释放池的基本概念和使用方法
- SlidesJS基本使用方法和官方文档解释 【Jquery幻灯片插件 Jquery相册插件】
- Firewalld的基本参数和简单使用方法
- 【Unity3D入门教程】Unity着色器基本使用方法