#if DEBUG
सी # में प्री-प्रोसेसर निर्देश का उपयोग क्या है? हमें इसका उपयोग कब करना चाहिए?सी # में #if DEBUG प्री-प्रोसेसर निर्देश का उपयोग क्या है? हमें इसका उपयोग कब करना चाहिए?
उत्तर
डिबग मोड में:
#if DEBUG
System.Console.WriteLine("Debug version");
#endif
System.Console.WriteLine("Output");
आउटपुट के रूप में
Debug version
Output
रिलीज मोड में:
#if DEBUG
System.Console.WriteLine("Debug version");
#endif
System.Console.WriteLine("Output");
आउटपुट के रूप में
Output
पढ़ इस: #if (C# Reference)
उपयोग: आप मानों का एक सेट है, तो डिबग मोड में परीक्षण किया जाना है और रिलीज़ मोड में आप #if DEBUG
आपको इसे बिल्कुल उपयोग नहीं करना है। इसका उद्देश्य कोड के अनुभाग होना है जो केवल डीबग मोड में संकलित हो जाते हैं। जैसे आपके पास कुछ कोड हो सकता है जो एक मास्टर उपयोगकर्ता को सक्षम करता है, जो प्रूपोज़ का परीक्षण और डीबग करने के लिए सिस्टम में कोई अन्य उपयोगकर्ता होने का नाटक कर सकता है। आप नहीं चाहते हैं कि उपयोगकर्ता सुरक्षा कारणों से रिलीज कोड में सक्षम हो ताकि आप #if DEBUG में कोड के रिलीव सेक्शन को लपेट सकें और उन्हें रिलीज कोड से बाहर रखा जाएगा।
संकलित करते समय आप संकलक झंडे सेट कर सकते हैं जिनका उपयोग आप उन निर्देशों में कोड डालने के लिए कर सकते हैं। वह कोड संकलित नहीं किया जाएगा और अंतिम असेंबली आउटपुट में कभी समाप्त नहीं होगा। DEBUG पूर्वनिर्धारित लोगों में से एक है, लेकिन आप स्वयं का उपयोग कर सकते हैं।
उपयोग के उदाहरण के रूप में: वर्तमान विकास में से एक में हम एक कंपाइलर ध्वज का उपयोग करते हैं, यह बताते हैं कि किसी उपयोगकर्ता में लॉग इन करने के लिए लॉगिन मास्क का उपयोग करना है या फिर वर्तमान प्रिंसिपल के साथ लॉगिन स्वचालित रूप से होना चाहिए या नहीं। दूसरा मोड केवल डेवलपर्स के लिए है उदा। लॉग इन किए बिना जल्दी डीबग करें।
एक और उदाहरण: कुछ मोनो कोड में आप झंडे देखेंगे। इस मामले में कोड को अलग-अलग संकलित किया जा सकता है जब उदा। एक अलग ढांचे को लक्षित करना, क्योंकि यह कक्षाओं का उपयोग करता है जो पहले रिलीज़ में मौजूद नहीं हो सकते हैं।
इससे संबंधित सशर्त -Attribute जिसके साथ आप एक विधि चिह्नित कर सकते हैं। अगर कहा गया ध्वज सेट नहीं है, तो विधि को कॉल नहीं किया जाएगा। विधि अभी भी आईएल में समाप्त होती है, लेकिन कॉल हटा दी जाएगी। कोड निम्न उदाहरण के लिए
की जांच:
var mthods = typeof (Debug).GetMethods().Where(mi => mi.Name.Equals("WriteLine")).ToList();
var attribs = mthods[0].GetCustomAttributes(true);
आप Debug.WriteLine विधि सशर्त विशेषता यह करने के लिए लागू किया है कि ध्यान देंगे: करने के लिए जब आप बिना डीबग संकलक झंडा संकलन निकाल दिया जाएगा कॉल करता है।
आप Conditional
विशेषता है, जो पूरे तरीकों को बाहर किया जा सकता है के साथ अधिक सहज महसूस कर सकते हैं, फोन करने की ओर सशर्त, साथ स्रोत जटिल की जरूरत के बिना:
[Conditional("DEBUG")]
void Foo()
{
}
Foo()
सुरक्षित रूप से दोनों में कहा जा सकता है डीबग और रिलीज - हालांकि रिलीज मोड में, यह नो-ऑप होगा।
'नो-ऑप' क्या है? – gingerbreadboy
यह एक विशेष आईएल कमांड है जो अनिवार्य रूप से "कुछ भी नहीं" कहता है। यह विशेष रूप से सहायक होता है जब आप उन जगहों पर ब्रेकपॉइंट डालते हैं जहां कुछ नहीं होता है (उदा। एक खुला ब्रैकेट) - इस तरह डीबगर कोड को सिंक्रनाइज़ कर सकता है और नो-ऑप के लिए आईएल – flq
+1 निष्पादित कर सकता है। खूबसूरती से समझाया गया .. –
यह विंडोज़ सेवाओं का परीक्षण करते समय भी आसान है। आप अपनी प्रक्रिया को मैन्युअल रूप से शुरू करने के लिए #if DEBUG में डाल सकते हैं, इसलिए आपको सेवा इंस्टॉल करने और डीबग करने के लिए इसे संलग्न करने की आवश्यकता नहीं है।
- 1. कोई #if 1 सी प्रीप्रोसेसर निर्देश का उपयोग क्यों करेगा?
- 2. हमें FSharpFunc.Adapt का उपयोग कब करना चाहिए?
- 3. हमें सी # में चेक ऑपरेटर का उपयोग कब करना चाहिए?
- 4. क्या मुझे #if (DEBUG) में Debugger.Log() को कॉल लपेटना चाहिए?
- 5. एसपीएल बनाम ऐरे: हमें एसपीएल का उपयोग कब करना चाहिए और हमें PHP में ऐरे का उपयोग कब करना चाहिए?
- 6. हमें कक्षा का उपयोग कब करना चाहिए और जब हमें
- 7. हमें निजी या संरक्षित का उपयोग कब करना चाहिए?
- 8. हमें उदाहरण का उपयोग कब करना चाहिए और
- 9. मुझे _aligned_malloc() का उपयोग कब करना चाहिए?
- 10. सी # में #if का उपयोग क्या है?
- 11. सी # मुझे सूची का उपयोग कब करना चाहिए और मुझे सरणीसूची का उपयोग कब करना चाहिए?
- 12. सी प्रीप्रोसेसर: #define के अंदर #if का उपयोग कर?
- 13. हमें सी # में अक्षर का उपयोग क्यों करना चाहिए?
- 14. वीबीएनईटी प्रीप्रोसेसर निर्देश
- 15. एमवीसी: हमें "नियंत्रक" की आवश्यकता क्यों है, या हमें इस पैटर्न का उपयोग कब करना चाहिए?
- 16. दोस्त == या << मुझे इसका उपयोग कब करना चाहिए?
- 17. क्या हमें उपयोगकर्ता कहानियों में व्यक्तित्व का उपयोग करना चाहिए?
- 18. प्रीप्रोसेसर निर्देश
- 19. हमें सी # में निहित और स्पष्ट ऑपरेटरों का उपयोग कब करना चाहिए?
- 20. ऐपडिलेगेट क्या है और मुझे इसका उपयोग कब करना है?
- 21. सी ++, #if TRUE सशर्त निर्देश
- 22. क्या हमें <base href = "" /> का उपयोग करना चाहिए?
- 23. हमें सी # में बाहरी उपनाम कीवर्ड का उपयोग कब करना चाहिए?
- 24. प्रीप्रोसेसर निर्देश में टेम्पलेट पैरामीटर का उपयोग करें?
- 25. अलगाव स्तर - Serializable। मुझे इसका उपयोग कब करना चाहिए?
- 26. मुझे उद्देश्य सी में असाइन का उपयोग कब करना चाहिए?
- 27. जब #if DEBUG
- 28. उद्देश्य-सी में, मुझे कक्षा विधियों का उपयोग कब करना चाहिए और मुझे उदाहरण विधियों का उपयोग कब करना चाहिए?
- 29. आपको जेसीआर का उपयोग कब करना चाहिए और आपको जेपीए/आरडीबीएमएस का उपयोग कब करना चाहिए?
- 30. जब, यदि कभी, क्या हमें कॉन्स का उपयोग करना चाहिए?
या बस जब डिबगिंग उपयोग कर सकते हैं, स्प्लैश स्क्रीन नहीं दिखा , एक या दो बचाओ। इस तरह के सामान। – TomTom
@ टॉमटॉम: कैसे, स्पलैश स्क्रीन * कभी * नहीं दिखाएं? – MusiGenesis