यह मेमोरी खपत के अनुकूलन और स्ट्रिंग तुलना के अनुकूलन का मामला है। हर बार जब आप अपने एप्लिकेशन में एक रिक्त स्ट्रिंग का उपयोग कर रहे होते हैं, तो आप 0 वर्णों वाली एक स्ट्रिंग ऑब्जेक्ट आवंटित कर रहे हैं। स्ट्रिंग की तुलना के रूप में यह चरित्र द्वारा चरित्र के बजाय संदर्भ (पॉइंटर्स) की तुलना करके किया जा सकता है, जो खाली तारों के लिए भी तेज है।
यदि आप अपने एप्लिकेशन में कई बार एक ही स्ट्रिंग का उपयोग कर रहे हैं, तो आप स्ट्रिंग के साथ String.Intern () कॉल करके उसी तरह के तंत्र का उपयोग कर सकते हैं। लेकिन अगर आप प्रत्येक स्ट्रिंग का उपयोग केवल एक बार कर रहे हैं, तो आप केवल अधिक मेमोरी का उपयोग करेंगे।
तो String.Empty केवल एक विशेष केस ऑप्टिमाइज़ेशन है जो अधिकांश .Net अनुप्रयोगों के लिए करने योग्य है, इसीलिए इसे BCL में एकीकृत किया गया था।
इस विषय पर अधिक विस्तार से मैं एरिक लिपर्ट के ब्लॉग पोस्ट को पढ़ने की दृढ़ता से सलाह देता हूं ।
आपको उनके ब्लॉग पोस्ट द्वारा संदर्भित इस दस्तावेज़ पर भी एक नज़र डालनी चाहिए ।