把方法1作为参数传递给方法2时,方法1的参数问题

kinemax 2009-02-09 09:53:41
我说的详细一点请各位耐心看看
首先声明一个Racer类,来表示赛车手和赛车
public class Racer
{
private string _name;
public string Name
{
get
{return _name;}
}
private string _car;
public string Car
{
get{return _car;}
}
public Racer(string name,string car)
{
this._name = name;
this._car = car;
}
}

然后声明一个racers 是赛车手列表,存储多个Racer

List<Racer> racers = new List<Racer>();
racers.ADD(new Racer("xxxx","xxx")
.
.
.//添加赛车手也就是Racer对象

现在我要用List<T>的FindAll方法来查找特定的赛车手(public List<t>FindAll(Predicate<T>match) )
声明谓词方法
public class FindRacer
{
private string car;
public FindRacer(string car)
{
this.car =car;
}
public bool DrivingCarPredicate(Racer racer)
{
return racer.Car == car;
}
}
以下就是我不清楚的地方叻

FindRacer finder = new FindRacer("xxx");

foreach(Racer racer in racers.FindAll(new Predicate<Racer>(finder.DrivingCarPredicate)))
{.....}

在上面的语句中 DrivingCarPredicate方法的参数哪去了,如果已经传递给了DrivingCarPredicate方法哪又是如何传递的?
请解释的详细一点



...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
我姓区不姓区 2009-02-09
  • 打赏
  • 举报
回复
Predicate<T>是一个委托,它的参数就是一个方法名或者匿名方法,所以只要把DrivingCarPredicate的方法名传进去就可以了
woanon 2009-02-09
  • 打赏
  • 举报
回复
参考下委托的原理,C#高级编程下个电子书看看
king19840811 2009-02-09
  • 打赏
  • 举报
回复
委托

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧