वहाँ एक समारोह जो स्विच मामला है और हम, यह एक छोटे कम होगाकैसे स्विच मामले बयान के cyclomatic जटिलता को कम करने के
string data = string.empty;
switch (value)
{
case "Less than 2 billion":
data = "0 - 2B";
break;
case "2 billion to 10 billion":
data = "2B - 10B";
break;
case "10 billion to 20 billion":
data = "10B - 20B";
break;
case "20 billion to 50 billion":
data = "20B - 50B";
break;
case "Greater than 50 billion":
data = "> 50B";
break;
case "N/A":
data = "N/A";
break;
case "[items] > 0":
data = string.Empty;
break;
}
return data;
आईएमएचओ सीसी मीट्रिक है जो एक दिशानिर्देश के रूप में सेवा के रूप में काम नहीं करना चाहिए। स्विच स्टेटमेंट उच्च सीसी देता है लेकिन वास्तव में यहां एक रखरखाव समस्या है? – FuleSnabel
लेकिन सीसी को एक शब्दकोश के साथ बदलकर रखरखाव बढ़ाने के लिए इसे कम करता है या क्या यह सीसी को कम करता है? मेरे अनुभव में; जब भी मैंने एक शब्दकोश लुकअप के साथ इस तरह के स्विच स्टेटमेंट्स को प्रतिस्थापित किया है तो प्रतिक्रिया हुई है: "मुझे स्विच स्टेटमेंट बेहतर पसंद आया"। रखरखाव के बारे में कौन सही है? सीसी मीट्रिक या देवता जो इसे बनाए रख रहे हैं? – FuleSnabel
मुझे नहीं लगता कि इसे एक शब्दकोश के साथ बदलना इसे कम जटिल बनाता है और मुझे लगता है कि आप कहीं और अपना प्रयास खर्च करने से बेहतर होंगे। एक चीज जो मुझे चिंतित करती है हालांकि हार्डकोडेड स्ट्रिंग्स (उदाहरण के लिए "2 अरब से कम" और "0 - 2 बी") हैं, ये वास्तव में रखरखाव के लिए स्थिरांक होना चाहिए। एफवाईआई आपको प्रत्येक मामले पर ब्रेक की आवश्यकता नहीं है यदि आप सिर्फ डेटा लौट रहे हैं, तो बस 'वापसी' 0-2 बी करें;; – Joey