这个"Lambda Expression"有什么作用?

m.e*_*son 8 .net c# matchevaluator c#-4.0

刚刚遇到以下代码行并且很难找到它的文档,是lambda expression吗?这是做什么的?

temp = Regex.Replace(url, REGEX_COOKIE_REPLACE,match => cookie.Values[match.Groups["CookieVar"].Value]);
Run Code Online (Sandbox Code Playgroud)

特别感兴趣的=>.

Col*_*inE 9

如果你看一下Replace的文档,第三个参数是MatchEvaluator:

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

这是一个委托,它接受一个Match参数并返回字符串以替换它.您的代码MatchEvaluator使用lambda表达式定义:

match => cookie.Values[match.Groups["CookieVar"].Value]
Run Code Online (Sandbox Code Playgroud)

这里,对于Regex找到的每个匹配,在cookie.Values字典中查找一个值,结果用作替换.


Zru*_*uty 7

match => cookie.Values[match.Groups["CookieVar"].Value]
Run Code Online (Sandbox Code Playgroud)

是一个快捷方式

delegate (Match match)
{
    return cookie.Values[match.Groups["CookieVar"].Value];
}
Run Code Online (Sandbox Code Playgroud)