स्वचालित गुणों को डीबग करना


126

क्या ऑटो-कार्यान्वित संपत्ति में सेटर / गेट्टर पर ब्रेकपॉइंट सेट करने का कोई तरीका है?

int Counter { get; set; }

इसे मानक संपत्ति में बदलने के अलावा (मैं इसे इस तरह से कर रहा हूं, लेकिन ऐसा करने के लिए मुझे पूरी परियोजना को बदलना और फिर से तैयार करना होगा)


2
आप किस आईडीई के साथ काम कर रहे हैं? दृश्य स्टूडियो? (मेरा सुझाव है कि आप अपने प्रश्न में एक संबंधित टैग जोड़ते हैं, क्योंकि यह वास्तव में C # भाषा की तुलना में किसी विशेष IDE से अधिक संबंधित है।)
stakx - 11:10 पर अब

5
.NET दुनिया में @stakx का हमारा डिफ़ॉल्ट आईडीई है :)
स्टिलगर

1
@ स्टिलगर, मुझे इस बात की जानकारी है, मैं खुद वीएस का उपयोग कर रहा हूं, आखिरकार। लेकिन "डिफ़ॉल्ट" का मतलब यह नहीं है कि यह केवल एक है, और न ही हर कोई इसका उपयोग करता है। चूंकि यह एक आईडीई प्रश्न है, इसलिए यह जानना महत्वपूर्ण है कि हम यहां किस आईडीई को देख रहे हैं। इसलिए मेरी पिछली टिप्पणी।
stakx -

4
@stakx अच्छी तरह से जब एक .NET संबंधित प्रश्न के लिए IDE का कोई उल्लेख नहीं है, तो यह माना जाता है कि यह वी.एस. क्या मैं अधिक मज़ाक कर रहा है :)
Stilgar

जवाबों:


220

विज़ुअल स्टूडियो 2008, 2010, 2012, 2013 का उपयोग करना:

  1. ब्रेकपॉइंट विंडो पर जाएं
  2. नई -> समारोह में तोड़ ...
  3. के लिए get, टाइप करें:ClassName.get_Counter()

    के लिए set, टाइप करें:ClassName.set_Counter(int)

आप मिल जाएगा एक "कोई स्रोत उपलब्ध" जब ब्रेकप्वाइंट मारा जाता है, लेकिन आप कॉल स्टैक में बुला स्थान मिल जाएगा।

मुझे यह समाधान यहाँ MSDN पर मिला


Briliant। धन्यवाद। मुझे अब स्वचालित गुणों को मानक एक (फ़ील्ड के साथ) में बदलने की आवश्यकता नहीं है। और कोई और अधिक पुनर्मूल्यांकन :)
मारेक क्विडेकज़

9
यह डिफॉल्ट कंस्ट्रक्टर के लिए भी काम करता है। का उपयोग करेंClassName.ctor
Călin डैरी

11
VS2015 ने इसे ऑटो
गेट्टर

1
यहाँ काम नहीं करता है। मैंने दोनों की कोशिश की Form.set_Heightऔर MainWindow.set_Heightन ही काम किया।
हाय-एंजेल

@ हाय-एंजेल, ध्यान दें कि बसने वालों के लिए, आपको प्रकार को शामिल करना होगा, इसलिए Form.set_Height (int)
मैट स्मिथ

7

अगर मैं तुम थे, तो मैं अस्थायी रूप से संपत्ति को एक आंतरिक क्षेत्र द्वारा समर्थित एक मानक बनाऊंगा ... अपने ब्रेकप्वाइंट सेट करूंगा, और फिर आप इसे वापस बदल सकते हैं।



2

दृश्य स्टूडियो 2017 पर:

"सेट" शब्द पर होवर करें -> राइट क्लिक करें -> ब्रेकपॉइंट -> ब्रेकपॉइंट डालें

इससे पहले:

इससे पहले

उपरांत:

उपरांत


0

ब्रेकपॉइंट सेट करें जहां आप संपत्ति सेट कर रहे हैं या संपत्ति प्राप्त कर रहे हैं, कोई अन्य तरीका नहीं है।

आप फाइंड ऑल रेफरेंस विकल्प के द्वारा ऐसा कर सकते हैं

और चूँकि यह केवल मानों का भंडारण है और सेटर के हिस्से में कोई कोड नहीं है तो आप क्या डिबग करते हैं?


3
हाँ, लेकिन क्या जब आप इसका उपयोग करते हैं उदाहरण के लिए 20 स्थानों पर? और हर नया ब्रेकप्वाइंट डिबगिंग प्रक्रिया को धीमा कर देता है। या, क्या होगा यदि संपत्ति की पहुंच फ्रेमवर्क द्वारा की जाती है (उदाहरण के लिए क्रमांकन)?
मारेक क्विडेकज

1
सशर्त विराम बिंदु। ब्रेक प्वाइंट को चालू करें, इसे राइट क्लिक करें और इसके लिए एक शर्त दें ...
Phill
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.