ভিজ্যুয়াল স্টুডিওতে ইমিডিয়েট উইন্ডোর একটি দুর্দান্ত বৈশিষ্ট্য হল কোনও পদ্ধতির রিটার্ন মান মূল্যায়ন করার দক্ষতা বিশেষত যদি এটি আপনার ক্লায়েন্ট কোড দ্বারা কল করা হয় তবে এটি কোনও পরিবর্তনশীল অ্যাসাইনমেন্টের অংশ নয় । উল্লিখিত হিসাবে, ডিবাগ মোডে আপনি ভেরিয়েবলের সাথে ইন্টারেক্ট করতে পারেন এবং মেমরিতে এক্সপ্রেশনগুলি চালিত করতে পারেন যা এটি করতে সক্ষম হওয়ার ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে।
উদাহরণস্বরূপ, যদি আপনার কাছে স্থিতিশীল পদ্ধতি থাকে যা দুটি সংখ্যার যোগফল প্রদান করে যেমন:
private static int GetSum(int a, int b)
{
return a + b;
}
তারপরে তাত্ক্ষণিক উইন্ডোতে আপনি নিম্নলিখিতটি টাইপ করতে পারেন:
? GetSum(2, 4)
6
আপনি দেখতে পাচ্ছেন, স্থির পদ্ধতিগুলির জন্য এটি সত্যিই ভাল কাজ করে। তবে, পদ্ধতিটি যদি স্থিতিশীল না হয় তবে পদ্ধতির সাথে সম্পর্কিত অবজেক্টের সাথে আপনার একটি রেফারেন্সের সাথে ইন্টারঅ্যাক্ট করতে হবে।
উদাহরণস্বরূপ, আসুন আমরা বলি যে এটি আপনার ক্লাসের মতো দেখাচ্ছে:
private class Foo
{
public string GetMessage()
{
return "hello";
}
}
যদি বস্তুটি ইতিমধ্যে মেমরিতে বিদ্যমান রয়েছে এবং এর স্কোপে রয়েছে, তবে আপনি এটি তত্ক্ষণাত উইন্ডোতে কল করতে পারবেন যতক্ষণ না এটি আপনার বর্তমান ব্রেকআপপয়েন্টের আগে ইনস্ট্যান্ট করা হয়েছে (বা কমপক্ষে, কোডটি ডিবাগ মোডে যেখানেই থামানো হয়েছে তার আগে):
? 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
প্রশ্নটি ('?') অপ্রয়োজনীয় যদি আপনি সরাসরি তাত্ক্ষণিক উইন্ডোতে থাকেন তবে এটি স্পষ্টতার জন্য এখানে অন্তর্ভুক্ত করা হয়েছে (ফলাফলের বিপরীতে প্রকাশিত টাইপের মধ্যে পার্থক্য করার জন্য।) তবে, আপনি যদি কমান্ড উইন্ডোতে থাকেন এবং প্রয়োজন হয় তাত্ক্ষণিক উইন্ডোতে কিছু দ্রুত স্টাফ করার জন্য আপনার বিবৃতি 'এর আগে?' এবং বন্ধ আপনি যেতে।
ইন্টেলিসেন্স তাত্ক্ষণিক উইন্ডোতে কাজ করে তবে এটি কখনও কখনও কিছুটা অসম্পূর্ণ হতে পারে। আমার অভিজ্ঞতা হিসাবে, এটি কেবলমাত্র ডিবাগ মোডে উপলব্ধ বলে মনে হয়, তবে নকশায় নয়, নন-ডিবাগ মোডে।
দুর্ভাগ্যক্রমে, তাত্ক্ষণিক উইন্ডোর আর একটি অপূর্ণতা হ'ল এটি লুপগুলিকে সমর্থন করে না।