c#委托把方法当成参数(实例讲解)
静态方法代理:
publicdelegatevoidDoGreeting(stringname);
classProgram
{
[STAThread]
staticvoidMain(string[]args)
{
//方法名当成参数传给委托类型调用
MarkGreeting("张三",GreetingEnglish);
MarkGreeting("李四",GreetingChinese);
}
///<summary>
///委托(代理的方法)
///</summary>
///<paramname="name"></param>
///<paramname="markGreeting"></param>
privatestaticvoidMarkGreeting(stringname,DoGreetingmarkGreeting)
{
markGreeting(name);
}
///<summary>
///用英文打招呼
///</summary>
///<paramname="name"></param>
privatestaticvoidGreetingEnglish(stringname)
{
Console.WriteLine(name+"hello!");
}
///<summary>
///用中文打招呼
///</summary>
///<paramname="name"></param>
privatestaticvoidGreetingChinese(stringname)
{
Console.WriteLine(name+"你好!");
}
}
实例方法代理:
publicdelegatevoidDoGreeting(stringname);
publicclassGreeting
{
///<summary>
///委托(代理的方法)
///</summary>
///<paramname="name"></param>
///<paramname="markGreeting"></param>
publicvoidMarkGreeting(stringname,DoGreetingmarkGreeting)
{
markGreeting(name);
}
///<summary>
///用英文打招呼
///</summary>
///<paramname="name"></param>
public voidGreetingEnglish(stringname)
{
Console.WriteLine(name+"hello!");
}
///<summary>
///用中文打招呼
///</summary>
///<paramname="name"></param>
publicvoidGreetingChinese(stringname)
{
Console.WriteLine(name+"你好!");
}
}
classProgram
{
[STAThread]
staticvoidMain(string[]args)
{
GreetinggreetingObj=newGreeting();
greetingObj.MarkGreeting("张三",greetingObj.GreetingEnglish);
greetingObj.MarkGreeting("李四",greetingObj.GreetingChinese);
}
相关文章
- c# mysql executenonquery_C#与数据库访问技术总结(八)之ExecuteNonQuery方法
- c#获得局域网主机列表实例
- C#声明方法实例说明
- C#索引器简单实例代码
- C#WinForm中Panel实现用鼠标操作滚动条的实例方法
- C#基础延迟加载介绍与实例
- C#中动态显示当前系统时间的实例方法
- C#和asp.net中链接数据库中参数的几种传递方法实例代码
- C#中把日志导出到txt文本的简单实例
- c#DataTable与不同结构实体类转换的方法实例
- C#正则表达式分解和转换IP地址实例(C#正则表达式大全c#正则表达式语法)
- c#生成缩略图不失真的方法实例分享
- Asp.Net(C#)自动执行计划任务的程序实例分析分享
- C#递归题目实例代码
- asp.net(C#)生成Code39条形码实例条码枪可以扫描出
- C#入门之窗体的简单用法实例
- C#聊天程序服务端与客户端完整实例代码
- C#泛型和反射实例解析
- C#实现绘制浮雕图片效果实例
- 基于C#实现的多生产者多消费者同步问题实例
- C#子线程更新UI控件的方法实例总结
- C#中结构(struct)的部分初始化和完全初始化实例分析