2011-08-08 11 views
23

को मैं इस तरह एक विधि नीचे लिखा है:कन्वर्ट विधि समूह 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; 
} 

और इस विधि के लिए, Resharper का कहना है:

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

विधि समूह में बदलें। इसका क्या अर्थ है और इससे छुटकारा पाने के लिए क्या किया जाना चाहिए।

+4

BTW, तुम * * नहीं है "इस से छुटकारा पाने के लिए": यह एक चेतावनी, केवल एक सुझाव नहीं है। यदि आप इसे अपने वर्तमान रूप में रखना पसंद करते हैं क्योंकि आपको यह स्पष्ट लगता है, तो यह कोई समस्या नहीं है। –

+0

हां, मुझे पता है, लेकिन यह जानकर उत्सुक था कि त्रुटि से कैसे छुटकारा पाना और किस विधि समूह था। आपके सुझाव के लिए – SaiBand

उत्तर

6

JaredPar पहले से ही सही उत्तर प्रदान की, मैं सिर्फ विधि का एक सरल कार्यान्वयन का सुझाव देना चाहता था:

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

मुझे एक विस्तृत उत्तर देने के लिए धन्यवाद। – SaiBand

59

क्या रिशेर्पर का अर्थ यह है कि आप विधि समूह Add का उपयोग कर ForEach कोड को अधिक आसानी से व्यक्त कर सकते हैं। उदाहरण:

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

विधि समूह Add द्वारा परिभाषित प्रतिनिधि ForEach और इसलिए सी # संकलक द्वारा की उम्मीद रूपांतरण करने का ख्याल रखना होगा साथ संगत है। Resharper में डिफ़ॉल्ट lambdas और स्पष्ट प्रतिनिधि निर्माण बयान पर विधि समूहों को प्राथमिकता देना है।

+0

धन्यवाद जेरेडपार। – SaiBand

+7

+1 यह एकमात्र उत्तर है जो "क्यों" को समझाने का प्रयास करता है। – TarkaDaal

6

Resharper के सुझाव स्वीकार करें देखने के लिए क्या परिवर्तन बनाता है। आप उन्हें हमेशा पूर्ववत कर सकते हैं।

यदि आप परिवर्तन से खुश नहीं हैं और नहीं चाहते हैं कि रिशेर्पर भविष्य में इसका सुझाव दे तो आप उस विशिष्ट विकल्प को अक्षम कर सकते हैं - अन्य उपलब्ध रहेंगे। विवरण के लिए यहां जवाब देखें।

Resharper: vars

+1

मुझे कुछ नया बताने के लिए धन्यवाद! – SaiBand