सी # में डिबग नहीं #?


127

मेरे पास vb कोड में लाइन है:

#if Not Debug

जिसे मुझे परिवर्तित करना होगा, और मैं इसे c # में नहीं देखता हूं?

क्या इसके समतुल्य कुछ है, या कुछ उलटफेर है?

जवाबों:


239

आपको उपयोग करने की आवश्यकता होगी:

#if !DEBUG
    // Your code here
#endif

या, यदि आपका प्रतीक वास्तव में है Debug

#if !Debug
    // Your code here
#endif

से प्रलेखन , आप को प्रभावी ढंग से इलाज कर सकते हैं DEBUGएक बूलियन के रूप में। तो आप जैसे जटिल परीक्षण कर सकते हैं:

#if !DEBUG || (DEBUG && SOMETHING)

15

बस इसलिए कि आप यहाँ क्या हो रहा है, #ifसे परिचित हैं, एक पूर्व-प्रसंस्करण अभिव्यक्ति है, और DEBUGएक सशर्त संकलन प्रतीक है। अधिक गहराई से व्याख्या के लिए यहां MSDN लेख है।

डिफ़ॉल्ट रूप से, जब डिबग कॉन्फ़िगरेशन में, विज़ुअल स्टूडियो प्रोजेक्ट के बिल्ड गुणों के तहत डेफिन डेबग निरंतर विकल्प की जांच करेगा । यह C # और VB.NET दोनों के लिए जाता है। यदि आप पागल होना चाहते हैं तो आप नए बिल्ड कॉन्फ़िगरेशन को परिभाषित कर सकते हैं और अपने स्वयं के सशर्त संकलन प्रतीकों को परिभाषित कर सकते हैं। जब आप यह देखते हैं, तो विशिष्ट उदाहरण:

#if DEBUG
    //Write to the console
#else
    //write to a file
#endif

10

बस के मामले में यह किसी और की मदद करता है, यहाँ मेरा जवाब है।

यह सही काम नहीं करेगा:

#if !DEBUG
     // My stuff here
#endif

लेकिन इसने काम किया:

#if (DEBUG == false)
     // My stuff here
#endif

3
हो सकता है कि जिस दिन यह पोस्ट किया गया था उस दिन सही हो, लेकिन कम से कम वीएस 2015 के लिए! डेबग उम्मीद के मुताबिक काम करता है
ओले अलबर्स

5

मुझे लगता है कि कुछ काम करेगा

 #if (DEBUG)
//Something
#else
//Something
#endif

5
इस सशर्त #ifबयान के लिए केवल कोष्ठक को ध्यान में रखना आवश्यक नहीं है । यह लिखा जा सकता है#if DEBUG
atconway

0
     bool isDebugMode = false;
#if DEBUG
     isDebugMode = true;
#endif
    if (isDebugMode == false)
    {
       enter code here
    }
    else
    {
       enter code here
    }

5
यह एक बुरा जवाब है क्योंकि यह संकलित करने के लिए रन-टाइम लॉजिक का उपयोग करता है जो संकलन समय पर किया जा सकता है।
एंटीडुह

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