एक विधि वर्णनकर्ता में विधि के रिटर्न प्रकार के लिए एक फ़ील्ड होता है। हालांकि void
कार्यों के लिए उस क्षेत्र को null
होना संभव होगा, जिसके लिए उस कोड की आवश्यकता होगी जो उदा।
string theReturnType = theMethod.ReturnType ? theMethod.ReturnType.ToString() : "null";
बजाय बस कह रही:: विधि की वापसी प्रकार की रिपोर्ट कुछ की तरह कहते हैं कि
string theReturnType = theMethod.ReturnType.ToString();
पर्याप्त मामलों में जहां कोड विधि की वापसी प्रकार के साथ कुछ करने के लिए विशेष-केस अशक्त करने के लिए है कि कर रहे हैं उनमें से सभी में एक डमी प्रकार "नल" होने से कहीं अधिक परेशान होगा जिसे वापस किया जा सकता है।
संयोग से, हालांकि मुझे पता है कि void
एकमात्र प्रकार है जो एक विधि वापसी मूल्य के लिए प्रयोग योग्य है लेकिन कोई अन्य उद्देश्य नहीं है, ऐसे अन्य मामले हैं जहां सार्वजनिक प्रकार के लिए उपयोग किया जा सकता है मान, लेकिन बाहरी भंडारण-स्थान घोषणाओं में उपयोग नहीं किया जाता है, जैसे कि एक धाराप्रवाह इंटरफ़ेस लिखते समय (यदि बाहरी कोड को biz.boz(3)
के सदस्यों तक पहुंचने की अनुमति दी जा सकती है, लेकिन मूल्य को स्वयं स्टोर नहीं कर सका, तो biz.boz(3).foo(9).bar(2).build()
जैसे निर्माण में, foo
विधि यह जान सकता है कि ब्रह्मांड में boz(3)
द्वारा लौटाई गई ऑब्जेक्ट में कहीं भी एकमात्र संदर्भ रखा गया था, और इस प्रकार इसे या तो अनुकूलित करने या इसकी सुविधा पर एक नया उदाहरण वापस करने के लिए स्वतंत्र होगा)।
इस तरह के एक अच्छे जवाब के लिए ty सर! –
अगर शून्य को वर्कअराउंड के रूप में उपयोग करने के बजाय .net में अच्छी तरह से एकीकृत किया गया था, तो क्या इससे बेहतर प्रदर्शन नहीं हुआ होगा? –
@App डेवलपर, मुझे नहीं लगता कि यह प्रदर्शन को प्रभावित करेगा, यह वास्तव में केवल संकलित करता है कि कैसे संकलन संकलित होते हैं, और यदि वे कोई मान वापस करते हैं या नहीं। सी # शून्य कार्य, या वीबी सबस सिर्फ मान वापस नहीं करते हैं, इसलिए इसके लिए स्टैक मानों को धक्का/पॉप करने के लिए आईएल कोड अभी छोड़ा गया है। – Kratz