C#委托回调
为什么要用委托回调呀?有什么意义?怎么样去理解委托回调啊?纠结ing.........希望大家能给点建议或者提供一些比较好的讲解委托回调的连接,谢谢。
[解决办法]
本帖最后由 caozhy 于 2011-06-29 10:08:11 编辑 将算法中某种行为提前给调用者去实现。
比如:
List<Person> FindPerson(Predicate<Person> condition)
{
List<Person> list = new List<Person>();
foreach (var p in Persons)
{
if (condition(p)) list.Add(p);
}
return list;
}
List<Person> list;
//查找名字叫张三的人。
list = FindPerson(delegate(Person p) { return p.Name == "张三"; });
foreach (var item in list)
{
Console.WriteLine(item);
}
//查找年龄在20~30岁的人。
list = FindPerson(delegate(Person p) { return p.Age >= 20 && p.Age <= 30; });
foreach (var item in list)
{
Console.WriteLine(item);
}
//查找职务角色是经理的人
list = FindPerson(delegate(Person p) { return p.Role == RoleType.Manager; });
foreach (var item in list)
{
Console.WriteLine(item);
}
list = FindPerson(delegate(Person p) { return p.Age % 2 == 0; });
foreach (var item in list)
{
Console.WriteLine(item);
}
list = FindPerson(delegate(Person p) { return p.Name.SubString(0, 1) == "张"; });
foreach (var item in list)
{
Console.WriteLine(item);
}