"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या विधियों को शून्य या खाली संग्रह वापस करना चाहिए?

क्या विधियों को शून्य या खाली संग्रह वापस करना चाहिए?

2025-01-26 को प्रकाशित
ब्राउज़ करें:534

Should Methods Return Null or Empty Collections?

शून्य या खाली संग्रह लौटाना: सर्वोत्तम अभ्यास

किसी संग्रह को रिटर्न वैल्यू प्रकार के रूप में लौटाने वाली विधि को डिज़ाइन करते समय, एक प्रश्न उठता है: क्या इसे शून्य या खाली संग्रह लौटाना चाहिए? सर्वोत्तम अभ्यास दृढ़तापूर्वक सभी मामलों में एक खाली संग्रह वापस करने की अनुशंसा करता है।

खाली संग्रह क्यों चुनें?

शून्य लौटना एक बुरा अभ्यास है क्योंकि इससे अनावश्यक कोड जटिलता और संभावित रनटाइम त्रुटियां होती हैं। उदाहरण के लिए, यदि आप संग्रह संपत्ति के लिए शून्य लौटाते हैं:

if(myInstance.CollectionProperty != null)
{
  foreach(var item in myInstance.CollectionProperty)
    /* 如果 CollectionProperty 为 null,此代码可能会失败 */
}

यदि myInstance.CollectionProperty वास्तव में शून्य है तो यह कोड अपवाद का कारण बन सकता है। इसके बजाय, एक खाली संग्रह वापस करना बेहतर है, यह सुनिश्चित करते हुए कि उपरोक्त कोड अभी भी त्रुटियों के बिना निष्पादित हो सकता है।

विशेषता सर्वोत्तम अभ्यास

संग्रह लौटाने वाली संपत्तियों के लिए, संपत्ति को केवल एक बार प्रारंभ करने की अनुशंसा की जाती है। यह संपत्ति वाले वर्ग के कंस्ट्रक्टर के दौरान किया जा सकता है:

public List Foos { public get; private set; }

public Bar() { Foos = new List(); }

C# 6 के साथ, अधिक संक्षिप्त संस्करण उपलब्ध है:

public List Foos { get; } = new List();

विधि सर्वोत्तम अभ्यास

संग्रह लौटाने वाली विधियों के लिए, यदि वास्तविक संग्रह मौजूद नहीं है, तो एक खाली संग्रह लौटाया जाता है। आप इस उद्देश्य के लिए Enumerable.Empty() विधि का उपयोग कर सकते हैं:

public IEnumerable GetMyFoos()
{
  return InnerGetFoos() ?? Enumerable.Empty();
}

यह दृष्टिकोण सुनिश्चित करता है कि भले ही InnerGetFoos() शून्य लौटाता है, फिर भी विधि संभावित त्रुटियों को रोकते हुए एक खाली संग्रह लौटाती है।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3