次のコード行に出くわし、そのドキュメントを見つけるのに苦労していlambda expression
ますか?これは何をしますか?
temp = Regex.Replace(url, REGEX_COOKIE_REPLACE,match => cookie.Values[match.Groups["CookieVar"].Value]);
特にに興味があり=>
ます。
次のコード行に出くわし、そのドキュメントを見つけるのに苦労してい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
これは、引数としてaを取り、それを置き換える文字列を返すデリゲートです。あなたのコードはMatchEvaluator
ラムダ式を使用してを定義しています:
match => cookie.Values[match.Groups["CookieVar"].Value]
ここでは、正規表現が検出した一致ごとに、値がcookie.Values
辞書で検索され、その結果が置換として使用されます。
match => cookie.Values[match.Groups["CookieVar"].Value]
へのショートカットです
delegate (Match match)
{
return cookie.Values[match.Groups["CookieVar"].Value];
}
は、 inRegEx.Replace
のすべての一致に対してラムダを実行し、一致をラムダの結果に「置き換え」ます。REGEX_COOKIE_REPLACE
url
ラムダ(または省略形のデリゲート)
match => cookie.Values[match.Groups["CookieVar"].Value]
Value
の「CookieVar」Group,
のを使用して、コレクションMatch,
内の置換を検索します。cookie.Values
ルックアップ値が一致を置き換えます。
「CookieVar」グループについて詳しく説明するには、次の評価を確認する必要があります。REGEX_COOKIE_REPLACE.