मैं इस तरह कोड युक्त जवाब के साथ यहाँ धागे (या कम से कम commented) के लिए प्रतिक्रिया व्यक्त की है, लेकिन अगर यह एक (या अधिक) शाखाओं के कर के साथ if
शाखाओं की एक श्रृंखला लिखने के लिए अच्छा है या बुरा रूप है मैं सोच रहा हूँ उनमें से कुछ भी नहीं, आम तौर पर प्रत्येक शाखा में null
की जांच को खत्म करने के लिए।क्या ऐसी शाखा है जो कोड गंध या अच्छी प्रैक्टिस नहीं करती है?
एक उदाहरण (सी # कोड):
if (str == null) { /* Do nothing */ }
else if (str == "SomeSpecialValue")
{
// ...
}
else if (str.Length > 1)
{
// ...
}
बजाय
:
if (str != null && str == "SomeSpecialValue")
{
// ...
}
else if (str != null && str.Length > 1)
{
// ...
}
और, बेशक, यह सिर्फ एक उदाहरण है, जैसा कि मैंने बड़े और अधिक जटिल के साथ इन का उपयोग करते हैं कक्षाएं। और इनमें से अधिकतर मामलों में, null
मान कुछ भी करने का संकेत नहीं देगा।
मेरे लिए, यह मेरे कोड की जटिलता कम कर देता है और समझ में आता है जब मैं इसे देख। तो, क्या यह अच्छा या बुरा रूप है (एक कोड गंध, यहां तक कि)?
मुझे लगता है कि यह ठीक है अगर यह आपके कोड अधिक पठनीय बनाता है और जटिल स्थितियों से बचा जाता है। यद्यपि बंद करने के लिए वोटिंग, "यह अच्छा या बुरा है" रास्ता बहुत ही व्यक्तिपरक है। – casablanca
तथ्य यह है कि इन सभी चेकों की आवश्यकता है "केवल मामले में" मान शून्य है, खुद में एक गंध है, आईएमएचओ। ऐसा करके आप बग छुपा रहे हैं। – SimonJ
@ सिमोनजे: अच्छा बिंदु। कम से कम इस मामले में, अगर एक 'शून्य' मूल्य की अपेक्षा नहीं की जाती है तो उसे अपवाद फेंकना चाहिए। – casablanca