प्रदर्शन यहां सबसे अधिक प्रासंगिक चिंता नहीं है। सवाल यह है कि, दोनों में से कौन सा अधिक पठनीय/रखरखाव/परीक्षण योग्य कार्यक्रमों की ओर जाता है। आप बाद में प्रदर्शन के बारे में चिंता कर सकते हैं।
सामान्य रूप से, प्रवाह नियंत्रण के लिए अपवादों का उपयोग न करें। वे प्रभावी रूप से एक गैर-स्थानीय goto
हैं जो प्रोग्राम को पढ़ने और अनुसरण करने में अधिक कठिन बनाता है। ऐसे में, उन्हें असाधारण परिस्थितियों के लिए आरक्षित किया जाना चाहिए। यदि आप प्रवाह नियंत्रण के लिए try-catch
ब्लॉक का उपयोग न करने से दूर हो सकते हैं, तो नहीं। आपके कार्यक्रम अधिक पठनीय और रखरखाव योग्य होंगे।
"सही" जिस तरह से इस स्थिति से निपटने के
var list = someMethod();
if(list == null || list.Length == 0) {
// handle something bad
}
string a = list[0];
if(a != null) {
// go
}
आप जाँच लें कि list
अशक्त और खाली नहीं नहीं है बच सकते हैं अगर वहाँ एक अनुबंध (Contract.Ensures
) गारंटी देता है कि someMethod
से वापसी मान है है शून्य नहीं और खाली नहीं है।
यह सच है, हालांकि, अपवाद स्थानीय रूप से महंगे हैं। चाहे वे आपके प्रोग्राम के प्रदर्शन को प्रभावित करेंगे या नहीं (यानी, एक बाधा है) एक और सवाल है। लेकिन सही ढंग से उपयोग किया जाता है, अपवाद आमतौर पर एक बाधा नहीं होती है (जो आपका एप्लिकेशन क्रैश होने पर प्रदर्शन की परवाह करता है?)
"तेज़" शब्द को रद्द करें, यह अप्रासंगिक है। और यह सीएलआर को टोल करने के प्रकार के बाद से प्रयास करने का सही तरीका भी नहीं है। – BoltClock
बस एक उदाहरण आदमी ... – carlosdubusm
@ बोल्टक्लॉक, नहीं, यह नहीं है। अगर अपवाद होता है। यह धीमा है। – CaffGeek