2013-03-30 4 views
15

मैंने पहली परियोजना बनाने के लिए सी # का उपयोग किया है। मैं चेतावनी त्रुटियों मैं #pragma चेतावनी अक्षम इस्तेमाल किया कम करने के लिए कई चेतावनी त्रुटियाँ हैं और इन सभी चेतावनी त्रुटियों एकल त्रुटि हो रहे हैं (आंतरिक संकलक त्रुटि। अधिक जानकारी के लिए कंसोल लॉग देखें।)#pragma चेतावनी अक्षम और पुनर्स्थापित

। #pragma चेतावनी समस्याग्रस्त कोड के सामने और पीछे बहाल करें।

मुझे संदेह है कि मेरे अंतिम निर्माण में मुझे उस #pragma चेतावनी को & प्रोग्राम में मौजूद होने पर पुनर्स्थापित करना चाहिए; या मुझे इसे हटाने की ज़रूरत है? उदाहरण:

#pragma warning disable 
if (Displayer.instance != null && CTR.Tore== "Keepit") 
{ 
    Displayer.instance.SetFielderProfile (i); 
} 
#pragma warning restore 

अंतिम निर्माण के लिए मुझे इसे हटाने की आवश्यकता है या नहीं?

उत्तर

6

यदि यह किसी भी व्यावहारिक मूल्य का कोड है तो आपको सभी चेतावनियों के साथ "चेतावनी के रूप में चेतावनी" सेटिंग के साथ कोई चेतावनी और संकलन नहीं करना चाहिए।

आपके द्वारा दिखाए गए कोड ऐसा नहीं लगता है कि इसमें स्वयं कोई त्रुटि है। तो मुझे कोई कारण नहीं दिखता कि आपको प्रज्ञा की आवश्यकता क्यों है।

लेकिन यह वास्तव में आपका कॉल है - आपका कोड और यदि किसी को इसका उपयोग करने/देखने/भुगतान करने की आवश्यकता नहीं है - जो भी आपके लिए काम करता है।

+0

आपके उत्तर के लिए धन्यवाद। । – SaravanaKumar

+0

मैं असहमत हूं। मैंने, उदाहरण के लिए, कक्षाओं को कुछ इंटरफेस से प्राप्त करने की आवश्यकता है। इन इंटरफेस में कभी-कभी ऐसी घटनाएं होती थीं जिन्हें मुझे उस विशेष कार्यान्वयन की आवश्यकता नहीं थी। अप्रयुक्त घटनाओं के बारे में चेतावनी क्यों नहीं है? –

+0

@shaitibber यदि आपके पास अच्छा कारण है (और अच्छी इनलाइन टिप्पणी प्रदान करें) - कभी-कभी चेतावनियों को इनलाइन करने के लिए बिल्कुल ठीक है। प्रश्न में संहिता से कोई संकेत नहीं दिखता है कि इस तरह की प्रगति की आवश्यकता है ... और मेरा मानना ​​है कि आपके द्वारा उल्लिखित मामले में चेतावनियों का कारण नहीं होना चाहिए क्योंकि इंटरफ़ेस के कार्यान्वयन को "अप्रयुक्त" के रूप में नहीं माना जा सकता है - इस बारे में अलग सवाल पूछना क्यों आपको चेतावनी मिल सकती है कि यह अच्छा विचार हो सकता है (अगर आप जो भी चेतावनी प्राप्त कर रहे हैं उसके बारे में पहले से ही अच्छा जवाब है तो यह सुनिश्चित करना सुनिश्चित करें)। –

34

कम से कम आपको अनदेखा करने के लिए जानबूझकर चुने गए चेतावनियों के बारे में विशिष्ट होना चाहिए। इस तरह, यदि बाद में रखरखाव एक 'नई' चेतावनी/मुद्दा पेश करता है जिसे आपको अवगत कराया जाना चाहिए, तो नव-निर्मित त्रुटि के बारे में चेतावनी आपके कंबल प्राग्मा चेतावनी अक्षम निर्देश द्वारा दबाया नहीं जाएगा।

आप दृश्य स्टूडियो में बिल्ड आउटपुट विंडो से अनदेखा करने के लिए निर्णय लेने वाले मुद्दों के बारे में चेतावनी संख्या प्राप्त कर सकते हैं। उन्हें आमतौर पर "चेतावनी CS0168 ...." या इसी तरह लेबल किया जाता है। इस मामले में आप विशेष रूप से उन त्रुटियों को लक्षित कर सकते हैं जिन्हें आपने अनदेखा करने का निर्णय लिया है:

#pragma warning disable 168, 3021 

    //Your code that generates warnings CS0168 and CS3021 here 

#pragma warning restore 168, 3021 
+15

+1। मैं एक सिफारिश जोड़ूंगा कि किसी के पास हमेशा एक टिप्पणी होगी कि 0128 और 3021 क्यों लागू नहीं होते हैं; आंशिक रूप से क्योंकि यदि आप एक अच्छा कारण नहीं लिख सकते हैं, तो आप केवल एक बग छुपा रहे हैं, आंशिक रूप से क्योंकि यह डेवलपर द्वारा उचित निर्णय और आलसी कवर-अप के बीच किसी और को देखने में अंतर है। –

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