2011-02-09 11 views
7

बस सोचा था कि यदि किसी समझा सकता है क्यों ऐन्डर्स फैसला किया है कि इस मान्य है मैं देखना चाहते हैं ...एकल कथन सशर्त - अन्य कोड ब्लॉक के लिए पैटर्न का उपयोग क्यों नहीं किया जाता है?

if(...) 
    //single statement 
else 
    ///single statement 

लेकिन यह नहीं है ...

try 
    //single statement 
catch 
    //single statement 
+5

पांडित्यदंभी में ब्रेसिंग के बारे में खंड को देखने के लिए चाहते हो सकता है: यह "एक पंक्ति" नहीं है - यह "एक बयान" –

+0

@Marc है: मैं शायद ही लगता है कि एक पंडिताऊ अंतर है। वास्तव में, मुझे संदेह है कि यह सवाल का वास्तविक जवाब है। –

+0

@ कोडी - ठीक है, आप तर्क में एक कथन और पकड़ में एक बयान दे सकते हैं ... हालांकि मुझे गलत मत समझो; मैं ** ** ** ब्रेसिज़ चाहता हूं; पी –

उत्तर

7

के बारे में "सामान्य शैली कन्वेंशनों" खंड में Framework Design Guidelines से शब्दों में इस ब्रेसिज़ के बारे में कहा गया है:

बचने को छोड़ते हुए ब्रेसिज़, भाषा यह अनुमति देता है, भले ही। ब्रेसेस को वैकल्पिक नहीं माना जाना चाहिए। एकल कथन ब्लॉक के लिए भी, आपको ब्रेसिज़ का उपयोग करना चाहिए। यह पठनीयता और रखरखाव कोड बढ़ाता है।

जैसे कि जब एक मौजूदा singöe लाइन बयान के बाद एक नया बयान के रूप में जोड़ने

बहुत सीमित मामलों रहे हैं जब को छोड़ते हुए ब्रेसिज़ स्वीकार्य हो सकता है, या तो असंभव या अत्यंत दुर्लभ है। उदाहरण के लिए, यह एक throw बयान के बाद एक बयान में जोड़ने के लिए अर्थहीन है:

if(someExpression) throw new ArgumentOutOfRangeExcetion(...);

शासन के लिए एक और अपवाद मामले बयान में ब्रेसिज़ है। ये ब्रेसिज़ को case और break कथन के रूप में छोड़ा जा सकता है शुरुआत और ब्लॉक की शुरुआत इंगित करता है।

एंड एंडर्स क्या सोचता है वह व्यक्तिपरक और तर्कसंगत है, यह सिफारिश है।

तुम भी coding convention over at msdn.

1

शायद क्योंकि एक बयान सशर्त, ऐतिहासिक रूप से कर रहे हैं घुंघराले ब्रेस भाषाओं में मान्य है, लेकिन अन्य पैटर्न नहीं हैं।

चूंकि कोई उदाहरण सामान्य रूप से कोड को कम पठनीय बनाता है, इसलिए ऐतिहासिक रूप से जरूरी एकल कथन समर्थन को आगे बढ़ाने का कोई अच्छा कारण नहीं है।

यदि आप छवि को कई कोड ब्लॉक पर एकल कथन समर्थन बढ़ाते हैं तो आप आसानी से किसी को पूरी तरह से अपठनीय कोड लिखने में आसानी से देख सकते हैं। व्यक्तिगत रूप से मैं पहले मामले से भी बचूंगा।

संबंधित मुद्दे