हम इस कोड sortof है,: VS10 अंतिम में13 घटना हैंडलर सदस्यता के साथ एक विधि में चक्रवात जटिलता 27 कैसे हो सकती है?
private void InitializeEvents()
{
this.Event1 += (s,e) => { };
this.Event2 += (s,e) => { };
this.Event3 += (s,e) => { };
this.Event4 += (s,e) => { };
this.Event5 += (s,e) => { };
this.Event6 += (s,e) => { };
this.Event7 += (s,e) => { };
this.Event8 += (s,e) => { };
this.Event9 += (s,e) => { };
this.Event10 += (s,e) => { };
this.Event11 += (s,e) => { };
this.Event12 += (s,e) => { };
this.Event13 += (s,e) => { };
}
कोड विश्लेषण कहते हैं, "27 के cyclomatic जटिलता"। लाइनों में से एक को हटाने से चक्रवात जटिलता 25.
कोई शाखा नहीं चल रही है, तो यह कैसे संभव है?
+1 "रेमेबर कि कोड विश्लेषण आपकी असेंबली में आईएल को देख रहा है, न कि आपके स्रोत कोड में। आईएल में कुछ भी नहीं है जो मूल रूप से लैम्ब्डा अभिव्यक्तियों का समर्थन करता है" – Lijo
लैम्बडास/प्रतिनिधियों को केवल कैच किया जाता है यदि कोई बंद नहीं है उनके ऊपर। अन्यथा, वे नहीं हैं। यह एक कारण है (कई में) भेड़ का बच्चा महंगा है। जेआईटी, आवंटन और जीसी भी शामिल है - लेकिन यह एक और चर्चा के लिए है। मैंने "हॉट" विधियों में बंद होने के साथ लैम्ब्डा से संबंधित अधिक प्रदर्शन समस्याओं को ठीक किया है जिन्हें मैं गिन सकता हूं। –