मुझे वास्तव में तुलना करने के लिए इसका उपयोग करने से पहले स्ट्रिंग चर के लिए एक मान असाइन करने की आवश्यकता क्यों है। पूर्व के लिए: कुछ इनपुट - नहीं कर सकते असाइन नहीं किए गए चर 'अस्थायी' का उपयोग करें - तरह कुछ - objतुलना करने से पहले स्ट्रिंग को मान निर्दिष्ट क्यों करें, जब डिफ़ॉल्ट शून्य है
string temp;
if (obj== null)
{
temp = "OK";
}
string final = temp;
मैं संकलन समय त्रुटि मिलती है। लेकिन स्ट्रिंग वैरिएबल में डिफ़ॉल्ट मान 'शून्य' है, जिसे मैं उपयोग करना चाहता हूं। तो इसकी अनुमति क्यों नहीं है?
बीटीडब्ल्यू, एक त्वरित तकनीकी नोट। चूंकि सी # आईएल को संकलित करता है, और विधि-स्तर आईएल स्टैक-आधारित है, वैरिएबल तकनीकी रूप से अस्तित्व में नहीं है जब तक उन्हें असाइन नहीं किया जाता है। जबकि डीबगर आपको बता सकता है कि एक असाइन किए गए चर '0' या कुछ के बराबर है, ज्यादातर मामलों में, यह सिर्फ एक सौजन्य है। यह केवल बाद में बनाया जाएगा। – GregRos
@GregRoss - और जब यह बनाया जाता है तो मेरा मानना है कि यह इस मामले में 'डिफ़ॉल्ट (टी) ',' शून्य' है। लेकिन न तो सी # प्रोग्रामर के लिए देखा जा सकता है। –
बिल्कुल नहीं। आईएल में, एक चर को स्पष्ट मूल्य के बिना घोषित नहीं किया जा सकता है जिसके लिए इसे असाइन किया जा सकता है। एक चर को 'डिफ़ॉल्ट (टी) '(या' शून्य ') को असाइन करने के लिए, आपको पहले एक स्पष्ट कमांड का उपयोग करके इस मान को पुनर्प्राप्त करने की आवश्यकता होगी, और केवल तभी आवंटित करें। अभ्यास में, सी # से उत्पन्न आईएल यह कभी नहीं करता है। जबकि आपको लगता है कि आपने एक चर घोषित किया है, तो आईएल आमतौर पर इसे तब तक घोषित नहीं करता जब तक कि इसे असाइन करने के लिए एक निश्चित मूल्य न हो। – GregRos