"शून्य" के साथ मूलभूत समस्या यह है कि इसका मतलब किसी अन्य रिटर्न प्रकार के समान नहीं है। "शून्य" का अर्थ है "यदि यह विधि वापस आती है तो इसका कोई मूल्य नहीं है।" शून्य नहीं; नल एक मूल्य है। यह जो भी मूल्य देता है।
यह वास्तव में टाइप सिस्टम को गड़बड़ कर देता है। एक प्रकार की प्रणाली अनिवार्य रूप से विशेष मूल्यों पर मान्य संचालन के बारे में तार्किक कटौती करने के लिए एक प्रणाली है; एक शून्य वापसी विधि एक मान नहीं लौटाती है, इसलिए सवाल "इस चीज़ पर क्या कार्यवाही मान्य है?" बिल्कुल भी कोई मतलब नहीं है। वहाँ पर कोई "बात" नहीं है जिसके लिए एक ऑपरेशन वैध या अमान्य है।
इसके अलावा, यह रनटाइम को कुछ गड़बड़ करता है। .NET रनटाइम आभासी निष्पादन प्रणाली का एक कार्यान्वयन है, जो स्टैक मशीन के रूप में निर्दिष्ट है। यही है, एक आभासी मशीन जहां एक मूल्यांकन स्टैक पर उनके प्रभाव के संदर्भ में संचालन सभी की विशेषता है। (बेशक अभ्यास में मशीन को स्टैक और रजिस्टरों दोनों के साथ मशीन पर लागू किया जाएगा, लेकिन आभासी निष्पादन प्रणाली सिर्फ एक स्टैक मानती है।) एक शून्य विधि के लिए कॉल का प्रभाव मौलिक रूप से है।गैर-शून्य विधि के लिए कॉल के प्रभाव से अलग; एक गैर-शून्य विधि हमेशा स्टैक पर कुछ डालती है, जिसे बंद करने की आवश्यकता हो सकती है। एक शून्य विधि कभी भी स्टैक पर कुछ नहीं डालती है। और इसलिए संकलक शून्य और गैर-शून्य तरीकों का इलाज नहीं कर सकता है, इस मामले में जहां विधि का लौटा मूल्य अनदेखा किया गया है; यदि विधि शून्य है, तो कोई वापसी मूल्य नहीं है, इसलिए कोई पॉप नहीं होना चाहिए।
इन सभी कारणों के लिए, "शून्य" एक प्रकार नहीं है जिसे तत्काल किया जा सकता है; इसका कोई मूल्य नहीं है , यह इसका पूरा बिंदु है। यह ऑब्जेक्ट के लिए परिवर्तनीय नहीं है, और एक शून्य रिटर्निंग विधि कभी भी गैर-शून्य-रिटर्निंग पद्धति के साथ बहुरूपिक रूप से इलाज नहीं किया जा सकता है क्योंकि ऐसा करने से स्टैक भ्रष्ट हो जाता है!
इस प्रकार, शून्य का उपयोग एक प्रकार के तर्क के रूप में नहीं किया जा सकता है, जो शर्म की बात है, जैसा कि आप ध्यान दें। यह बहुत सुविधाजनक होगा।
दृष्टिहीनता के लाभ के साथ, यह सभी संबंधितों के लिए बेहतर होता अगर कुछ भी नहीं होने के बजाय, एक शून्य-रिटर्निंग विधि स्वचालित रूप से "यूनिट", एक जादुई सिंगलटन संदर्भ प्रकार लौटा देती। तब आपको पता चलेगा कि हर मेथड कॉल स्टैक पर कुछ डालता है , आपको पता होगा कि हर मेथड कॉल रिटर्न कुछ ऐसा है जो ऑब्जेक्ट प्रकार के एक चर को सौंपा जा सकता है , और निश्चित रूप से यूनिट को एक प्रकार के तर्क के रूप में इस्तेमाल किया जा सकता है , इसलिए वहाँ होगा अलग-अलग एक्शन और फंक डेलीगेट के प्रकार की आवश्यकता नहीं है। अफसोस की बात है, कि हम दुनिया में नहीं हैं।
इस नस में कुछ और विचारों के लिए देखें: