如何在C#2.0中重写lambda表达式?

MatchEvaluator evaluator = (match) => { var splitPos = match.Value.IndexOf("=\""); var newValue = match.Value.Substring(0, splitPos + 2) + "RetrieveBuildFile.aspx?file=" + prefix + match.Value.Substring(splitPos + 2); return newValue; }; 

这段代码意味着什么,我需要将VS 2008中的这段代码移植到VS 2005,VS 2005中也没有

c#2.0支持delegate关键字,因此可以将其重写为:

 MatchEvaluator evaluator = delegate(Match match) { int splitPos = match.Value.IndexOf("=\""); string newValue = match.Value.Substring(0, splitPos + 2) + "RetrieveBuildFile.aspx?file=" + prefix + match.Value.Substring(splitPos + 2); return newValue; }; 

这与此完全相同:

 static string OnEvaluator(Match match) { int splitPos = match.Value.IndexOf("=\""); string newValue = match.Value.Substring(0, splitPos + 2) + "RetrieveBuildFile.aspx?file=" + prefix + match.Value.Substring(splitPos + 2); return newValue; } 

叫来:

 MatchEvaluator evaluator = OnEvaluator; 

它是什么?

MSDN:表示每次在Replace方法操作期间找到正则表达式匹配时调用的方法。

http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.matchevaluator.aspx