2010-05-27 21 views
8

मैं कुछ सी # कोड को देख रहा हूँ, और निम्नलिखित बयान सामने आने वाले:सी # संकलक निर्देशों

#if DEBUG 
    // Do something here 
#else 
    // Do something else 
#endif 

मैं मान लिया डीबग एक कहीं परिभाषित इस प्रकार होगा कि:

#define DEBUG 

लेकिन मैं ऐसी परिभाषा नहीं ढूंढ पा रहा हूं, हालांकि कोड व्यवहार के रूप में व्यवहार करता है जैसा कि यह सेट किया गया था। क्या DEBUG एक विशेष मामला है, और यदि हां, तो यह कैसे सेट/सेट नहीं किया जाता है?

उत्तर

5

प्रोजेक्ट पर, Properties -> Build पर जाएं। सामान्य रूप से, आपके पास DEBUG और TRACE दोनों को परिभाषित करने के लिए एक विकल्प है।

+1

तो # डेफिन डेब्यू सेट होने के बजाय इन चेक-बॉक्स रखने के पीछे लाभ/तर्क क्या है? –

+0

@ pm_2 - केंद्रीयता। यह इसके बारे में। –

4

यह #define निर्देश या compiler settings में सेट है। डीबग रिलीज में डीबीयूजी को परिभाषित करना आम बात है, इसलिए आप अपने उदाहरण में कुछ कोड सशर्त रूप से संकलित कर सकते हैं।

आप इसके बारे में MSDN पर और अधिक पढ़ सकते हैं।

+7

** कृपया ** विजुअल स्टूडियो 2003/.NET 1.1 लिंक पोस्ट न करें! पाठक लिंक का पालन करते हैं, और फिर लिंक से लिंक का पालन करना चाहते हैं, और 2003 में फंस गए हवा। –

+3

हाँ क्षमा करें, मैंने बस इसे ठीक किया है। मूर्खतापूर्ण Google की गलती और मेरे पास निम्न बैंडविड्थ संस्करण सक्षम है इसलिए मैं तुरंत नहीं देखता हूं। पाठ्यक्रम के सभी बहाने :) – Skurmedel

4

आप परियोजना संपत्तियों में देखें, तो आप एक डिबग विकल्प डीबग तो फिर तुम सी # में कर सकते हैं मिलेगा:

[Conditional("Debug")] 
public void DebugThis() 
{ 
} 
1

तुम भी डीबग को परिभाषित करने और परियोजना गुण 'बिल्ड तहत सशर्त संकलन स्थिरांक ट्रेस कर सकते हैं टैब। इस उदाहरण के लिए, परिभाषित करें DEBUG निरंतर चेकबॉक्स शायद आपके प्रोजेक्ट के लिए चेक किया गया है।

अधिक जानकारी @MSDN

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