डीबगर में {MyNamespace.MyProject.MyClass}
देखने के बजाय डीबगिंग जानकारी की उपयोगिता को बढ़ाने के दो तरीके हैं।सी # डीबगिंग: [डीबगर डिस्प्ले] या ToString()?
ये DebuggerDisplayAttribute
और ToString()
विधि का उपयोग हैं।
using System.Diagnostics;
...
[DebuggerDisplay("Name = {Name}")]
public class Person
{
public string Name;
}
या
public class Person
{
public string Name;
public override string ToString()
{
return string.Format("Name = {0}", Name);
}
}
वहाँ अन्य करने के लिए एक पसंद करते हैं करने के लिए किसी भी कारण है? दोनों कारण नहीं करने का कोई कारण? क्या यह पूरी तरह से निजी वरीयता है?
+1 रीड के "साइड इफेक्ट" बिंदु पर जोड़ने के लिए: 'ToString' को अक्सर "डिफ़ॉल्ट प्रदर्शन स्ट्रिंग" के रूप में उपयोग किया जाता है, उदाहरण के लिए,' Console.WriteLine' या WPF डेटा बाइंडिंग द्वारा। –
निश्चित रूप से; स्ट्रिंग का प्रारूप सिर्फ एक दृश्य उदाहरण के लिए दिया गया था ताकि डीबगर डिस्प्ले के लिए दी गई स्ट्रिंग के समानता पर जोर दिया जा सके। जैसा कि आप कहते हैं, डीबगर डिस्प्ले प्रारूप भी नाम को सीधे वापस कर सकता है। मैं साइड इफेक्ट्स के बारे में आपका बिंदु देखता हूं - यह एक तरह का भेद है जिसे मैं ढूंढ रहा हूं। मैं आम तौर पर कक्षाओं पर ToString विधि का उपयोग नहीं करता (मेरे द्वारा दिए गए उद्देश्य को छोड़कर) तो इसके अन्य उपयोग मेरे लिए उतने स्पष्ट नहीं थे। धन्यवाद! – bwerks