2012-03-28 6 views
7

.NET/विजुअल स्टूडियो किसी ऑब्जेक्ट की ToString() विधि का उपयोग किसी ऑब्जेक्ट के मान को डीबगर में देखते समय प्रदर्शित करने के लिए करता है। मैं विशिष्ट जानकारी प्रदर्शित करना चाहता हूं, लेकिन तब से। ऑब्जेक्ट को स्ट्रिंग में कनवर्ट करते समय .ओस्ट्रिंग() को ढांचे द्वारा अक्सर उपयोग किया जाता है, मैं इसे ToString() को ओवरराइड करके नहीं कर सकता। क्या कोई विशेषता है जिसका उपयोग मैं किसी भिन्न विधि या संपत्ति का उपयोग करने के लिए डीबगर को बताने के लिए कर सकता हूं?डीबगिंग करते समय ऑब्जेक्ट के मूल्य को दिखाने के लिए ToString के अलावा किसी प्रतिनिधि का उपयोग कैसे करें?

उत्तर

12

उपयोग DebuggerDisplayAttribute[MSDN]। आप इसे एक प्रारूप स्ट्रिंग के साथ आपूर्ति करते हैं जो ToString() के साथ गड़बड़ किए बिना डिबगिंग करते समय कक्षा के भीतर फ़ील्ड/गुणों को संदर्भित करता है।

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

यह भी तरीकों के साथ काम करता है:

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

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

बहुत बढ़िया, मैं Intellisense में उस गुण देखा था, लेकिन मुझे नहीं पता था मूल्य tokenized जा सकता है। यह बहुत अधिक समझ में आता है। धन्यवाद! –

संबंधित मुद्दे

 संबंधित मुद्दे