विजुअल स्टूडियो में तत्काल विंडो की एक अच्छी विशेषता एक विधि के रिटर्न मूल्य का मूल्यांकन करने की क्षमता है, खासकर अगर इसे आपके क्लाइंट कोड द्वारा कहा जाता है, लेकिन यह एक चर असाइनमेंट का हिस्सा नहीं है । डिबग मोड में, जैसा कि उल्लेख किया गया है, आप चर के साथ बातचीत कर सकते हैं और स्मृति में अभिव्यक्तियों को निष्पादित कर सकते हैं जो ऐसा करने में सक्षम होने में महत्वपूर्ण भूमिका निभाता है।
उदाहरण के लिए, यदि आपके पास एक स्थिर विधि थी जो दो संख्याओं का योग लौटाती है जैसे:
private static int GetSum(int a, int b)
{
return a + b;
}
फिर तत्काल विंडो में आप निम्नलिखित टाइप कर सकते हैं:
? GetSum(2, 4)
6
जैसा कि आप देख सकते हैं, यह वास्तव में स्थिर तरीकों के लिए अच्छी तरह से काम करता है। हालांकि, यदि विधि गैर-स्थिर है, तो आपको उस ऑब्जेक्ट के संदर्भ में बातचीत करने की आवश्यकता है जो विधि से संबंधित है।
उदाहरण के लिए, मान लीजिए कि आपकी कक्षा कैसी दिखती है:
private class Foo
{
public string GetMessage()
{
return "hello";
}
}
वस्तु पहले से ही स्मृति में मौजूद है और यह दायरे में आता है तो आप इसे तत्काल विंडो में जब तक कॉल कर सकते हैं के रूप में यह instantiated कर दिया गया है से पहले अपने वर्तमान ब्रेकपाइंट (या कम से कम, जहाँ भी कोड डिबग मोड में रोक दिया गया है से पहले):
? foo.GetMessage(); // object ‘foo’ already exists
"hello"
इसके अलावा, यदि आप मेमोरी में किसी मौजूदा उदाहरण पर भरोसा किए बिना सीधे तरीके से बातचीत करना और उसका परीक्षण करना चाहते हैं, तो आप तत्काल विंडो में अपने स्वयं के उदाहरण को इंस्टेंट कर सकते हैं :
? Foo foo = new Foo(); // new instance of ‘Foo’
{temp.Program.Foo}
? foo.GetMessage()
"hello"
यदि आप आगे मूल्यांकन, गणना आदि करना चाहते हैं तो आप इसे एक कदम आगे ले जा सकते हैं और अस्थायी रूप से चर के परिणामों को असाइन कर सकते हैं।
? string msg = foo.GetMessage();
"hello"
? msg + " there!"
"hello there!"
इसके अलावा, यदि आप एक नई वस्तु के लिए एक चर नाम की घोषणा नहीं करना चाहते हैं और सिर्फ इसके तरीकों / कार्यों में से एक को चलाना चाहते हैं तो निम्न कार्य करें:
? new Foo().GetMessage()
"hello"
एक विधि के मूल्य को देखने का एक बहुत ही सामान्य तरीका एक वर्ग के विधि नाम का चयन करना और एक 'ऐड वॉच' करना है ताकि आप वॉच विंडो में इसका वर्तमान मूल्य देख सकें। हालांकि, एक बार फिर, वस्तु को तत्काल मूल्य के लिए और वैध मूल्य के लिए प्रदर्शित करने की आवश्यकता होती है। यह तत्काल विंडो का उपयोग करने की तुलना में बहुत कम शक्तिशाली और अधिक प्रतिबंधात्मक है।
निरीक्षण विधियों के साथ, आप सरल गणित समीकरण कर सकते हैं:
? 5 * 6
30
या मूल्यों की तुलना करें:
? 5==6
false
? 6==6
true
प्रश्न चिह्न ('?') अनावश्यक है यदि आप सीधे इमीडिएट विंडो में हैं, लेकिन यह स्पष्टता के लिए यहाँ शामिल है (अभिव्यक्ति बनाम परिणामों में टाइप किए गए के बीच अंतर करने के लिए।) हालांकि, यदि आप कमांड विंडो और आवश्यकता में हैं। तत्काल खिड़की में कुछ जल्दी करने के लिए 'के साथ अपने बयान से पहले?' और तुम जाओ।
इंटेलीजेंस तत्काल विंडो में काम करता है , लेकिन यह कभी-कभी थोड़ा असंगत हो सकता है। मेरे अनुभव में, यह केवल डिबग मोड में उपलब्ध है, लेकिन डिज़ाइन, गैर-डीबग मोड में उपलब्ध नहीं है।
दुर्भाग्य से, तत्काल विंडो का एक और दोष यह है कि यह छोरों का समर्थन नहीं करता है।