C# 的委托总结
2009-08-03 10:31
260 查看
C# 的委托总结
2009-07-31 12:18
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Test
{
public class Class1
{
/*声明委托*/
public delegate void GreetingDelegate1(string name,string name2);//多参数委托
public delegate void GreetingDelegate2(string name); //单参数委托
/*使用委托定义新方法*/
private void GreetPeople1(string name,string name2, GreetingDelegate1 MakeGreeting)
{
MakeGreeting(name,name2);
}
private void GreetPeople2(string name,GreetingDelegate2 gd) {
gd(name);
}
/*定义委托的方法*/
private static void show1(string name,string name2) {
Console.WriteLine("name1:"+name+"name2"+name2+"/n");
}
private static void show2(string name,string name2)
{
Console.WriteLine("name2:" + name + "name1:" + name2 + "/n");
}
private static void show3(string name) {
Console.WriteLine("单参数show3"+name+"/n");
}
static void Main(string[] args) {
Class1 c = new Class1();
/*使用委托定义的方法*/
c.GreetPeople1("show2多参数","2222222", Class1.show2);
c.GreetPeople1("show2多参数", "111111", Class1.show1);
c.GreetPeople2("show3单参数",Class1.show3);
/*直接使用委托*/
GreetingDelegate1 s = show1; //直接定义委托类型的方法变量,并且赋值。
s("name1","name2"); //使用方法变量
s = show2;
s("1111", "2222");
s += show1;
s("zj1","zj2");
Console.ReadKey();
}
}
}
2009-07-31 12:18
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Test
{
public class Class1
{
/*声明委托*/
public delegate void GreetingDelegate1(string name,string name2);//多参数委托
public delegate void GreetingDelegate2(string name); //单参数委托
/*使用委托定义新方法*/
private void GreetPeople1(string name,string name2, GreetingDelegate1 MakeGreeting)
{
MakeGreeting(name,name2);
}
private void GreetPeople2(string name,GreetingDelegate2 gd) {
gd(name);
}
/*定义委托的方法*/
private static void show1(string name,string name2) {
Console.WriteLine("name1:"+name+"name2"+name2+"/n");
}
private static void show2(string name,string name2)
{
Console.WriteLine("name2:" + name + "name1:" + name2 + "/n");
}
private static void show3(string name) {
Console.WriteLine("单参数show3"+name+"/n");
}
static void Main(string[] args) {
Class1 c = new Class1();
/*使用委托定义的方法*/
c.GreetPeople1("show2多参数","2222222", Class1.show2);
c.GreetPeople1("show2多参数", "111111", Class1.show1);
c.GreetPeople2("show3单参数",Class1.show3);
/*直接使用委托*/
GreetingDelegate1 s = show1; //直接定义委托类型的方法变量,并且赋值。
s("name1","name2"); //使用方法变量
s = show2;
s("1111", "2222");
s += show1;
s("zj1","zj2");
Console.ReadKey();
}
}
}
相关文章推荐
- C#线程中安全访问控件(重用委托,避免繁复的delegate,Invoke)总结
- 总结:CLR Via C#(第15章):委托
- C# 委托 事件 观察者模式 总结
- c#委托知识总结
- C#中的委托与事件详解<个人总结>
- C#中的多播委托笔记总结(转)
- C# 委托知识总结
- C#中的委托和事件--7.总结
- 为LINQ服务的C#新特性总结篇---扩展方法,匿名委托,lambda表达式,Action委托,Func委托,Linq中的order by,top和sum函数
- C# 委托知识总结
- C#中委托和事件机制(续)(个人总结)
- C# 委托应用总结(委托,Delegate,Action,Func,predicate)
- C# 委托知识总结
- C#中委托和事件机制。。(个人总结)
- C# 委托知识总结
- C# 委托应用总结
- C#中的委托与事件详解<个人总结>
- 读<<CLR via C#>>总结(10) 详谈委托
- C# 中的委托和事件学习总结
- C#中委托的基本用法总结