5
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;
            };

What does this code mean , I need to port this code which is in VS 2008 to VS 2005, the same is not available in VS 2005

Marc Gravell
  • 1,026,079
  • 266
  • 2,566
  • 2,900
Pushparaj
  • 99
  • 2
  • 7

1 Answers1

9

c# 2.0 supports the delegate keyword, so it could be rewritten into this:

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;
};

And this is exactly the same as this:

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;
}

called with:

MatchEvaluator evaluator = OnEvaluator;

And what it is?

MSDN: Represents the method that is called each time a regular expression match is found during a Replace method operation.

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

Mikael Östberg
  • 16,982
  • 6
  • 61
  • 79
  • 1
    `var` is also VS2008 only - when building this in VS2005 you will need to replace `var` with the actual type, e.g. `int` in the first case and `string` in the second (I think). – Justin Apr 11 '11 at 10:30