कोई कोडिंग की कल्पना निम्नलिखित:सी # संकलक संवर्धन सुझाव
string s = "SomeString";
s.ToUpper();
हम सभी जानते हैं कि ऊपर के उदाहरण में, "toupper()" विधि करने के लिए कॉल व्यर्थ है क्योंकि लौटे स्ट्रिंग बिल्कुल नहीं संभाला है । लेकिन फिर भी, बहुत से लोग उस गलती को करते हैं और खुद को पूछकर समस्या का निवारण करने का प्रयास करने में समय व्यतीत करते हैं "मेरे 'चर के पूंजीकृत क्यों नहीं हैं" ????
तो क्या यह बहुत अच्छा नहीं होगा अगर "एट्रिब्यूट()" विधि पर लागू किया जा सकता है जो कि वापसी ऑब्जेक्ट को संभाला नहीं जाता है तो एक कंपाइलर त्रुटि उत्पन्न करेगा? निम्नलिखित की तरह कुछ:
[MustHandleReturnValueAttribute]
public string ToUpper()
{
…
}
इस कोड के लिए आदेश सही ढंग से उपयोगकर्ता को संकलित करने के इस तरह वापसी मान संभाल करने के लिए होता है, तो: यह एकदम साफ आप करना होगा कि बनाना होगा
string s = "SomeString";
string uppers = s.ToUpper();
मुझे लगता है कि रिटर्न वैल्यू को संभालें अन्यथा कोई फंक्शन कॉल करने पर कोई बिंदु नहीं है।
स्ट्रिंग उदाहरण के मामले में यह एक बड़ा सौदा नहीं हो सकता है लेकिन मैं अन्य वैध कारणों के बारे में सोच सकता हूं कि यह आसान क्यों होगा।
आप क्या सोचते हैं?
धन्यवाद।
मैंने इसे पहले किया है, +1 –
@Rene: मान्य बिंदु, +1 – Codex