2012-03-28 11 views
7

.NET/Visual Studio, bir nesnenin değerini hata ayıklayıcıda görüntülerken görüntülemek için bir nesnenin ToString() yöntemini kullanır. Belirli bilgileri görüntülemek istiyorum, ancak bir nesneyi bir dizeye dönüştürürken .ToString() genellikle çerçeve tarafından kullanıldığından, bunu ToString() öğesini geçersiz kılarak yapılamam. Farklı bir yöntem veya özellik kullanmak için hata ayıklayıcısına söylemek için kullanabileceğim bir özellik var mı?Hata ayıklama sırasında bir nesnenin değerini göstermek için ToString dışındaki bir temsilci nasıl kullanırım?

cevap

12

Kullanım DebuggerDisplayAttribute[MSDN]. ToString() ile uğraşmak zorunda kalmadan hata ayıklama yaparken gösterilecek sınıftaki alanlara/özelliklere referans veren bir biçim dizgisi sağlayın.

[DebuggerDisplay("Count = {count}")] 
class MyHashtable 
{ 
    public int count = 4; 
} 

Ayrıca yöntemlerle çalışmaktadır:

[DebuggerDisplay("{ToDebugString()}")] 
public class SomeClass 
{ 
    public override String ToString() 
    { 
     return "Normal ToString()"; 
    } 

    public String ToDebugString() 
    { 
     return "ToDebugString()"; 
    } 
} 
+0

Müthiş, ben IntelliSense bu özelliğini gördüm ama değer simgeleştirilecek olabilir farkında değildi. Bu daha mantıklı. Teşekkürler! –

İlgili konular