आप विजुअल स्टूडियो में तत्काल विंडो का उपयोग कैसे करते हैं?


121

तत्काल विंडो डिबगिंग अनुप्रयोगों के लिए एक बहुत ही उपयोगी उपकरण है। इसका उपयोग कोड स्टेटमेंट को निष्पादित करने के लिए किया जा सकता है जो ब्रेक पॉइंट के संदर्भ में मान्य हैं और मानों का निरीक्षण करते हैं। मैं भाषा सुविधाओं को सीखने के लिए कोड स्निपेट्स टाइप करने के लिए भी इसका उपयोग करता हूं।

आप तत्काल विंडो का उपयोग कैसे करते हैं?


यदि आप अलग-अलग विजुअल स्टूडियो कमांड जारी करने की बात कर रहे हैं, तो उदाहरण के लिए [तत्काल विंडो] [1] पर एक नज़र डालें। यह दर्शाता है कि कैसे भावों का मूल्यांकन किया जाए, कथनों को निष्पादित किया जाए, चर मानों को प्रिंट किया जाए, और आगे की खिड़की के बावजूद। [१]: msdn.microsoft.com/en-us/library/f177hahy(VS.80).aspx
TStamper

2
कुछ विशेष कमांड हैं जिनकी सूची खोजना मुश्किल है। msdn.microsoft.com/en-us/library/ms171362(v=vs.100).aspx विंडबग की कुछ शक्ति उपलब्ध है। सक्षम होने के लिए उपयोग किया जाता है, एक पता दिया जाता है, निकटतम प्रतीक ढूंढें। (ln) मुझे लगता है कि मूर्खतापूर्ण हो गया। मैं Windbg की dt कमांड को स्ट्रक्चर में टाइप प्रदर्शित करना पसंद करता हूं, आदि। कम से कम आप सभी सदस्यों को उनके मूल्यों के साथ एक सूची में लाने के लिए ऑब्जेक्ट चर टाइप कर सकते हैं। (बजाय एक नोड बंद नोड खेल खेलने की कोशिश कर रहा है।)
kalbr

विज़ुअल स्टूडियो 2017 के लिए, प्रासंगिक दस्तावेज़ का लिंक docs.microsoft.com/en-us/visualstudio/ide/reference/…
Pac0

जवाबों:


130

विजुअल स्टूडियो में तत्काल विंडो की एक अच्छी विशेषता एक विधि के रिटर्न मूल्य का मूल्यांकन करने की क्षमता है, खासकर अगर इसे आपके क्लाइंट कोड द्वारा कहा जाता है, लेकिन यह एक चर असाइनमेंट का हिस्सा नहीं है । डिबग मोड में, जैसा कि उल्लेख किया गया है, आप चर के साथ बातचीत कर सकते हैं और स्मृति में अभिव्यक्तियों को निष्पादित कर सकते हैं जो ऐसा करने में सक्षम होने में महत्वपूर्ण भूमिका निभाता है।

उदाहरण के लिए, यदि आपके पास एक स्थिर विधि थी जो दो संख्याओं का योग लौटाती है जैसे:

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

प्रश्न चिह्न ('?') अनावश्यक है यदि आप सीधे इमीडिएट विंडो में हैं, लेकिन यह स्पष्टता के लिए यहाँ शामिल है (अभिव्यक्ति बनाम परिणामों में टाइप किए गए के बीच अंतर करने के लिए।) हालांकि, यदि आप कमांड विंडो और आवश्यकता में हैं। तत्काल खिड़की में कुछ जल्दी करने के लिए 'के साथ अपने बयान से पहले?' और तुम जाओ।

इंटेलीजेंस तत्काल विंडो में काम करता है , लेकिन यह कभी-कभी थोड़ा असंगत हो सकता है। मेरे अनुभव में, यह केवल डिबग मोड में उपलब्ध है, लेकिन डिज़ाइन, गैर-डीबग मोड में उपलब्ध नहीं है।

दुर्भाग्य से, तत्काल विंडो का एक और दोष यह है कि यह छोरों का समर्थन नहीं करता है।


1
आप कैसे करते हैं खोजने के तत्काल खिड़की?
jpaugh

1
Ctrl + Alt + Iया डिबग -> विंडोज -> तत्काल
रे

11

कमांड निष्पादित करने के लिए तत्काल विंडो का उपयोग करें

कमांड को निष्पादित करने के लिए तत्काल विंडो का उपयोग किया जा सकता है। बस >इसके बाद कमांड टाइप करें।

यहाँ छवि विवरण दर्ज करें

उदाहरण के लिए >shell cmdएक कमांड शेल शुरू होगा (यह जांचने के लिए उपयोगी हो सकता है कि विज़ुअल स्टूडियो के लिए पर्यावरण चर क्या थे, उदाहरण के लिए)। >clsस्क्रीन को साफ कर देगा।

यहां उन आदेशों की एक सूची दी गई है जो आमतौर पर उपयोग किए जाते हैं कि उनके पास अपने स्वयं के उपनाम हैं: https://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx


2
अच्छी टिप। वास्तव में, यह अच्छी तरह से एक और चाल के साथ जोड़ती है जिसका मैं उपयोग करता हूं: >open Filenameसमाधान में चयनित फ़ाइल को खोल देगा, और यहां तक ​​कि फ़ाइल नाम पूरा करना भी होगा।
फिलिप

6

तत्काल विंडो का उपयोग अभिव्यक्तियों को डिबग करने और मूल्यांकन करने, बयानों को निष्पादित करने, चर मानों को प्रिंट करने और आगे करने के लिए किया जाता है। यह आपको डिबगिंग के दौरान विकास भाषा द्वारा मूल्यांकन या निष्पादित करने के लिए अभिव्यक्ति दर्ज करने की अनुमति देता है।

तत्काल विंडो प्रदर्शित करने के लिए, डीबग> विंडोज> तत्काल चुनें या Ctrl-Alt-I दबाएं

यहाँ छवि विवरण दर्ज करें

यहाँ तत्काल विंडो के साथ एक उदाहरण है:

int Sum(int x, int y) { return (x + y);}
void main(){
int a, b, c;
a = 5;
b = 7;
c = Sum(a, b);
char temp = getchar();}

विराम बिंदु जोड़ें

यहाँ छवि विवरण दर्ज करें

कॉल कमांड्स

यहाँ छवि विवरण दर्ज करें

https://msdn.microsoft.com/en-us/library/f177hahy.aspx

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.