2011-05-05 23 views
6

मेरे पास एक छोटा सा सवाल है, मुझे यह जांचने की ज़रूरत है कि सी # में एक var परिभाषित किया गया है या नहीं। मैं यह जांचना नहीं चाहता कि यह शून्य है या नहीं, तो मैं इसे बनाना चाहता हूं, यह अस्तित्व में होना चाहिए।सी # यह जांचने के लिए संभव है कि एक var परिभाषित किया गया है या नहीं?

उदा। आप String.IsNullOrEmpty(foo) इस्तेमाल कर सकते हैं

isDefined("foo") :: bool 
+0

शायद आप अपनी असली समस्या का वर्णन कर सकते हैं? आप स्थानीय चर के अस्तित्व की जांच क्यों करना चाहते हैं? सभी आईएमओ में कोई समझ नहीं आता है। – CodesInChaos

+0

क्या आपका मतलब जावास्क्रिप्ट जैसे हर चर घोषित करने की आवश्यकता के बिना किसी भाषा में संभव है? –

उत्तर

7

जैसा कि आप जानते चर एक string है,: मैं यह जानना वर string foo परिभाषित किया गया है की जरूरत है वहाँ anyting की तरह है। यह bool देता है।

क्या आप वाकई चर रहा है कि किस प्रकार नहीं कर रहे हैं, तो आप इस्तेमाल कर सकते हैं: if (foo != null)

1

आप रनटाइम पर उनके नाम से स्थानीय चर का उपयोग नहीं कर सकते हैं। रनटाइम पर नाम से सदस्यों तक पहुंचने के लिए आप प्रतिबिंब और dynamic का उपयोग कर सकते हैं।

4

का उल्लेख आप आप इस का कैसे उपयोग करने पर विस्तृत कर सकते हैं? इस प्रश्न और आपके पिछले प्रश्नों में से एक के आधार पर, ऐसा लगता है कि आप एक PHP पृष्ठभूमि से आ रहे हैं। सी # में, एक अपरिभाषित चर की कोई धारणा नहीं है। कोड में किसी भी बिंदु पर, एक दिया गया चर या तो घोषित किया गया है या नहीं, और आप यह निर्धारित कर सकते हैं कि यह कोड को देखकर घोषित किया गया है या नहीं। यदि यह घोषित नहीं किया गया है, तो संकलक आपको चर का उपयोग करने की अनुमति नहीं देगा (यह अस्तित्व में नहीं है)। एक चर घोषित किया जा सकता है, लेकिन अनियमित; हालांकि, कंपाइलर आपको चर के मान को पढ़ने नहीं देगा जब तक कि यह सुनिश्चित न हो कि चर के पास एक मान है। उदाहरण के लिए:

int foo; // Declared, but uninitialized 
if (bar == 42) 
    foo = 3; // Initialize foo 
// At this point, foo may or may not be initialized. 
// Since we cannot be sure that it is initialized, 
// the next line will not compile. 
x = foo; 

आप या नहीं, एक चर एक मूल्य सौंपा गया है (और आप null उपयोग नहीं कर सकते संकेत मिलता है कि कोई मूल्य नहीं सौंपा गया है) का ट्रैक रखना चाहते हैं, तो आप इस पर नज़र रखने की जरूरत है एक अलग bool वैरिएबल के साथ जो false के रूप में शुरू होता है और जब आप अन्य चर को आवंटित करते हैं तो true पर सेट होता है।

संबंधित मुद्दे

 संबंधित मुद्दे