2

このコードをコピー&ペーストせずに「どの程度最適に」書き換えるかについて教えてください。これで、同等のラムダハンドラーを持つ2つのハンドラーができました...コードが増えてスタイルが悪くて申し訳ありません((

    wc.DownloadStringCompleted += (sender, args) =>
    {
        try
        {
            res = (T)(object)args.Result;
            var cook = Regex.Matches(wc.ResponseHeaders.ToString(), "Set\\-Cookie:\\s*([\\w\\-_\\.]+\\s*=\\s*[^;]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);
            foreach (Match val in cook)
                cookies += val.Groups[1].Value.Trim() + "; ";
            isComplited = true;
        }
        catch (Exception e)
        {
            lastError = e.InnerException.Message;
        }
    };


    wc.UploadDataCompleted += (sender, args) =>
    {
        try
        {
            res = (T)(object)args.Result;
            var cook = Regex.Matches(wc.ResponseHeaders.ToString(), "Set\\-Cookie:\\s*([\\w\\-_\\.]+\\s*=\\s*[^;]+)", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline);
            foreach (Match val in cook)
                cookies += val.Groups[1].Value.Trim() + "; ";
            isComplited = true;
        }
        catch (Exception e)
        {
            lastError = e.InnerException.Message;
        }
    };
4

1 に答える 1