[英]What does this “Lambda Expression” do?
刚刚遇到以下代码行并且很难找到它的文档,它是一个lambda expression
吗? 这是做什么的?
temp = Regex.Replace(url, REGEX_COOKIE_REPLACE,match => cookie.Values[match.Groups["CookieVar"].Value]);
特别感兴趣的是=>
。
如果查看Replace的文档,第3个参数是MatchEvaluator
:
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.matchevaluator.aspx
这是一个委托,它将Match
作为参数并返回字符串以替换它。 您的代码使用lambda表达式定义MatchEvaluator
:
match => cookie.Values[match.Groups["CookieVar"].Value]
在这里,对于Regex找到的每个匹配,在cookie.Values
字典中查找一个值,结果用作替换。
match => cookie.Values[match.Groups["CookieVar"].Value]
是一个快捷方式
delegate (Match match)
{
return cookie.Values[match.Groups["CookieVar"].Value];
}
RegEx.Replace
为url
中的REGEX_COOKIE_REPLACE
每个匹配运行lambda,并用lambdas结果“替换”匹配。
lambda(或速记代表)
match => cookie.Values[match.Groups["CookieVar"].Value]
使用Match,
的“CookieVar” Group,
的Value
来查找cookie.Values
集合中的cookie.Values
。 查找值替换匹配。
为了告诉您有关“CookieVar”组的更多信息,我们需要查看REGEX_COOKIE_REPLACE.
的评估REGEX_COOKIE_REPLACE.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.