2011-08-08 31 views
23

Tôi đã viết một phương pháp dưới đây như thế này:Convert to Phương pháp Nhóm Resharper

internal static IList<EmpowerTaxView> GetEmpowerTaxViewsByLongAgencyAndAgencyTaxTypes(
    IList<EmpowerCompanyTaxData> validEmpowerCompanyTaxDatas, 
    IList<EmpowerTaxView> empowerTaxViews) 
{ 
    IList<EmpowerTaxView> result = new List<EmpowerTaxView>(); 

    foreach (EmpowerCompanyTaxData empowerCompanyTaxData in validEmpowerCompanyTaxDatas) 
    { 
     IList<EmpowerTaxView> validEmpowerTaxViews = 
      GetEmpowerTaxViewsByLongAgencyAndTaxType(
      empowerCompanyTaxData, empowerTaxViews); 

     validEmpowerTaxViews.ToList().ForEach(delegate(EmpowerTaxView etv) 
     { 
       result.Add(etv); 
     }); 
    } 

    return result; 
} 

Và đối với phương pháp này, resharper nói:

validEmpowerTaxViews.ToList().ForEach(delegate(EmpowerTaxView etv) 
{ 
    result.Add(etv); 
}); 

Convert to Phương pháp Group. Điều này có nghĩa là gì và cần phải làm gì để loại bỏ điều này.

+4

BTW, bạn không * có * để "loại bỏ điều này": nó không phải là cảnh báo, chỉ là một gợi ý. Nếu bạn muốn giữ nó ở dạng hiện tại của nó bởi vì bạn tìm thấy nó rõ ràng hơn, nó không phải là một vấn đề. –

+0

Có, tôi biết, nhưng tò mò làm thế nào để thoát khỏi lỗi và nhóm phương pháp là gì. – SaiBand

Trả lời

6

JaredPar đã cung cấp câu trả lời đúng, tôi chỉ muốn đề nghị một việc thực hiện đơn giản của phương pháp này:

internal static IList<EmpowerTaxView> GetEmpowerTaxViewsByLongAgencyAndAgencyTaxTypes(
    IList<EmpowerCompanyTaxData> validEmpowerCompanyTaxDatas, 
    IList<EmpowerTaxView> empowerTaxViews) 
{ 
    var results = 
     from empowerCompanyTaxData in validEmpowerCompanyTaxDatas 
     from etv in GetEmpowerTaxViewsByLongAgencyAndTaxType(
      empowerCompanyTaxData, empowerTaxViews) 
     select etv; 
    return results.ToList(); 
} 
+0

Cảm ơn bạn đã cho tôi câu trả lời chi tiết. – SaiBand

59

Phương tiện chia sẻ lại có nghĩa là bạn có thể thể hiện mã ForEach đơn giản hơn bằng cách sử dụng nhóm phương pháp Add. Ví dụ:

validEmpowerTaxViews.ToList().Foreach(result.Add); 

Nhóm phương pháp xác định bởi Add tương thích với các đại biểu dự kiến ​​bởi ForEach và do đó biên dịch C# sẽ chăm sóc làm việc chuyển đổi. Mặc định trong Resharper là thích các nhóm phương thức hơn lambdas và các câu lệnh tạo đại biểu rõ ràng.

+0

Cảm ơn JaredPar vì đề xuất của bạn. – SaiBand

+7

+1 Đây là câu trả lời duy nhất ở đây nhằm giải thích "lý do". – TarkaDaal

6

Chấp nhận đề nghị Resharper để xem những gì thay đổi nó làm cho. Bạn luôn có thể hoàn tác chúng.

Nếu bạn không hài lòng với thay đổi và không muốn Resharper đề xuất trong tương lai thì bạn có thể tắt tùy chọn cụ thể đó - các tùy chọn khác sẽ vẫn khả dụng. Xem câu trả lời ở đây để biết chi tiết.

Resharper: vars

+1

Cảm ơn bạn đã nói cho tôi điều gì đó mới mẻ! – SaiBand

Các vấn đề liên quan