Visual Studio'da komut penceresi içinde güzel bir özelliği de istemci koduyla adlandırılan özellikle bir yöntemin dönüş değeri değerlendirmek yeteneğidir ama öyle değil değişken atama parçası. Hata Ayıklama modunda, belirtildiği gibi, değişkenlerle etkileşime girebilir ve bunu yapmada önemli bir rol oynayan bellekte ifadeler çalıştırabilirsiniz.
Örneğin, iki sayının toplamını döndüren statik bir yönteminiz varsa, örneğin:
private static int GetSum(int a, int b)
{
return a + b;
}
Ardından, Hemen Penceresine aşağıdakileri yazabilirsiniz:
? GetSum(2, 4)
6
Gördüğünüz gibi, bu statik yöntemler için gerçekten iyi çalışıyor. Ancak, yöntem statik değilse, o zaman yöntemin ait olduğu nesneye bir başvuru ile etkileşimde bulunmanız gerekir.
Örneğin, sınıfınızın böyle göründüğünü varsayalım:
private class Foo
{
public string GetMessage()
{
return "hello";
}
}
Nesne zaten bellekte mevcutsa ve kapsam dahilindeyse , geçerli kesme noktanızdan önce (veya en azından kodun hata ayıklama modunda duraklatıldığı her yerden önce) başlatıldığı sürece onu Hemen Pencerede çağırabilirsiniz :
? foo.GetMessage(); // object ‘foo’ already exists
"hello"
Ayrıca, bellekteki mevcut bir örneğe güvenmeden doğrudan yöntemle etkileşim kurmak ve test etmek istiyorsanız , Anında Pencerede kendi örneğinizi başlatabilirsiniz :
? Foo foo = new Foo(); // new instance of ‘Foo’
{temp.Program.Foo}
? foo.GetMessage()
"hello"
Daha fazla değerlendirme, hesaplama vb. Yapmak istiyorsanız, bunu bir adım daha ileri götürebilir ve yöntemin sonuçlarını geçici olarak değişkenlere atayabilirsiniz:
? string msg = foo.GetMessage();
"hello"
? msg + " there!"
"hello there!"
Ayrıca, yeni bir nesne için bir değişken adı bile bildirmek istemiyorsanız ve yalnızca yöntemlerinden / işlevlerinden birini çalıştırmak istiyorsanız, şunu yapın:
? new Foo().GetMessage()
"hello"
Bir yöntemin değerini görmenin çok yaygın bir yolu, bir sınıfın yöntem adını seçmek ve bir 'İzleme Ekle' yapmaktır, böylece o yöntemin geçerli değerini Gözlem penceresinde görebilirsiniz. Ancak, geçerli bir değerin görüntülenmesi için nesnenin bir kez daha somutlaştırılması ve kapsam içinde olması gerekir. Bu, Anında Pencereyi kullanmaktan çok daha az güçlü ve daha kısıtlayıcıdır.
İnceleme yöntemlerinin yanı sıra, basit matematik denklemleri yapabilirsiniz:
? 5 * 6
30
veya değerleri karşılaştırın:
? 5==6
false
? 6==6
true
Doğrudan Acil Pencerede iseniz, soru işareti ('?') Gereksizdir, ancak netlik için buraya dahil edilmiştir (yazılan ifadeler ile sonuçları ayırt etmek için) Ancak, Komut Penceresindeyseniz ve ihtiyacınız varsa Hemen Pencerede bazı hızlı şeyler yapmak için, ardından ifadelerinizin önüne '?' ve sen git.
Intellisense, Hemen Pencerede çalışır , ancak bazen biraz tutarsız olabilir. Tecrübelerime göre, sadece Hata Ayıklama modunda mevcut gibi görünüyor, ancak tasarım, hata ayıklama olmayan modda değil.
Ne yazık ki, Hemen Pencerenin bir başka dezavantajı, döngüleri desteklememesidir.