Salah satu fitur bagus dari Jendela Segera di Visual Studio adalah kemampuannya untuk mengevaluasi nilai kembalian suatu metode terutama jika dipanggil oleh kode klien Anda tetapi itu bukan bagian dari tugas variabel. Dalam mode Debug, seperti yang disebutkan, Anda dapat berinteraksi dengan variabel dan mengeksekusi ekspresi dalam memori yang memainkan peran penting untuk dapat melakukan ini.
Misalnya, jika Anda memiliki metode statis yang mengembalikan jumlah dua angka seperti:
private static int GetSum(int a, int b)
{
return a + b;
}
Kemudian di Jendela Segera Anda dapat mengetik yang berikut ini:
? GetSum(2, 4)
6
Seperti yang Anda lihat, ini bekerja sangat baik untuk metode statis. Namun, jika metode tersebut non-statis, Anda perlu berinteraksi dengan referensi ke objek tempat metode tersebut berada.
Sebagai contoh, katakanlah seperti ini kelas Anda:
private class Foo
{
public string GetMessage()
{
return "hello";
}
}
Jika objek sudah ada dalam memori dan berada dalam cakupan, maka Anda dapat memanggilnya di Jendela Segera selama itu telah dibuat sebelum breakpoint Anda saat ini (atau, setidaknya, sebelum di mana pun kode dijeda dalam mode debug):
? foo.GetMessage(); // object ‘foo’ already exists
"hello"
Selain itu, jika Anda ingin berinteraksi dan menguji metode secara langsung tanpa mengandalkan instance yang ada di memori, Anda dapat membuat instance Anda sendiri di Jendela Segera:
? Foo foo = new Foo(); // new instance of ‘Foo’
{temp.Program.Foo}
? foo.GetMessage()
"hello"
Anda dapat mengambil langkah lebih jauh dan untuk sementara menetapkan hasil metode ke variabel jika Anda ingin melakukan evaluasi, penghitungan lebih lanjut, dll .:
? string msg = foo.GetMessage();
"hello"
? msg + " there!"
"hello there!"
Selanjutnya, jika Anda bahkan tidak ingin mendeklarasikan nama variabel untuk objek baru dan hanya ingin menjalankan salah satu metode / fungsinya, lakukan ini:
? new Foo().GetMessage()
"hello"
Cara yang sangat umum untuk melihat nilai suatu metode adalah dengan memilih nama metode kelas dan melakukan 'Tambah Jam' sehingga Anda dapat melihat nilainya saat ini di jendela Tonton. Namun, sekali lagi, objek perlu dibuat instance-nya dan berada dalam cakupan untuk menampilkan nilai yang valid. Ini jauh lebih tidak kuat dan lebih membatasi daripada menggunakan Jendela Segera.
Bersama dengan metode pemeriksaan, Anda dapat melakukan persamaan matematika sederhana:
? 5 * 6
30
atau bandingkan nilai:
? 5==6
false
? 6==6
true
Tanda tanya ('?') Tidak diperlukan jika Anda berada langsung di Jendela Segera tetapi itu disertakan di sini untuk kejelasan (untuk membedakan antara ekspresi yang diketik versus hasil.) Namun, jika Anda berada di Jendela Perintah dan perlu untuk melakukan beberapa hal cepat di Jendela Segera lalu awali pernyataan Anda dengan '?' dan pergilah.
Intellisense berfungsi di Jendela Segera , tetapi terkadang bisa sedikit tidak konsisten. Dalam pengalaman saya, sepertinya hanya tersedia dalam mode Debug, tetapi tidak dalam desain, mode non-debug.
Sayangnya, kelemahan lain dari Immediate Window adalah tidak mendukung loop.