2012-10-24 13 views
6

में कोई त्रुटि क्यों नहीं है मैंने हाल ही में एक सी # टीम से एक vb.net टीम में स्विच किया है। उन चीजों में से एक जो मैं जवाब खोजने में सक्षम नहीं हूं, संकलन त्रुटि/विकल्पों में अंतर है। मुझे समझाने दो।वीबी.NET

सी # में, मैं डिफ़ॉल्ट सेटिंग्स का उपयोग कर, एक अमान्य प्रकार में एक अमान्य प्रकार में पास करने की कोशिश करते समय संकलित समय त्रुटि प्राप्त करूँगा जैसे नीचे। यहां मैं एक स्ट्रिंग प्रकार के साथ एक पशु बना देता हूं और बाद में मैं एक डेटाटाइम में जाता हूं जिसके परिणामस्वरूप संकलन त्रुटि होती है।

IAnimal<string> animal = new Animal<string>(); 
animal.SetTrainer(DateTime.Now); 

मुझे पता है कि मुझे "विकल्प सख्त" के साथ vb.net में एक ही संकलन समय त्रुटि मिल जाएगी। हालांकि, एक ही फाइल में बहुत सी विरासत (वीबी) कोड है जो "विकल्प सख्त" के साथ संकलित नहीं होगा। आपके पास कौन से विकल्प हैं। मैं यह सोच रहा हूं:

  1. "विकल्प सख्त" पर स्विच करें और सभी त्रुटियों को ठीक करें। कुछ समय लगेगा और कामकाजी कोड तोड़ सकता है।
  2. शायद एक वैकल्पिक विकल्प है जो जेनेरिकों की संकलन समय जांच सुनिश्चित करेगा। सभी जेनेरिकों के बजाय नए हैं इसलिए शायद इसे हमेशा लागू करने का एक तरीका है।
  3. ?

अग्रिम धन्यवाद

उत्तर

6

डबल अपने प्रोजेक्ट क्लिक करें -> मेरे परियोजना।

गोटो संकलित करें और Warningconfiguration

के लिए अब आप कुछ सेटिंग बदल सकते हैं।

  • अंतर्निहित डाली
  • लेट बाइंडिंग

उन्हें त्रुटियों लेकिन चेतावनी नहीं बनाते हैं।

यह समय त्रुटियों को संकलित नहीं करेगा लेकिन आप कम से कम कुछ चेतावनियां देख सकते हैं।

एक और समाधान आपकी कक्षा को आंशिक वर्ग बनाना और अपना कोड एक नई फ़ाइल में ले जाना होगा। आप प्रति फ़ाइल आधार पर विकल्प सख्त/विकल्प स्पष्ट सेट कर सकते हैं।

+5

+1 अत्यधिक सहमत हैं।लेकिन अगर आप इसके बारे में सोचते हैं तो मैं ** प्रोजेक्ट लेवल पर विकल्प सख्त चालू कर दूंगा ** और मैं प्रत्येक फ़ाइल में ** विकल्प सख्त बंद जोड़ूंगा ** इसके बिना संकलित नहीं होगा। कदम से कदम फिर आप मौजूदा कोड को दोबारा करने के लिए काम करेंगे। –

+0

इस पर आपके विचार साझा करने के लिए धन्यवाद। मैं अपनी टीम – Flodpanter

+0

@Adriano, +1 के साथ इसकी चर्चा करूंगा - शायद यह सबसे अच्छा समाधान है। –

3

"विकल्प सख्त" पर स्विच करें और सभी त्रुटियों को ठीक करें। कुछ समय लगेगा और कामकाजी कोड तोड़ सकता है।

हाँ, ऐसा करें। यह आपको स्वच्छता बनाए रखने में मदद करेगा।

पॉप अप होने वाली अधिकांश त्रुटियां शायद साधारण कास्टिंग समस्याएं हैं, जो ठीक करने के लिए आसान हैं (CInt यहां, ToString() ...)।

आपको अपने पूरे समाधान या प्रोजेक्ट को एक बार में ठीक करने की ज़रूरत नहीं है, क्योंकि आप फ़ाइल स्तर पर Option Strict On सक्षम कर सकते हैं। प्रत्येक फ़ाइल को ठीक करने के लिए इसे एक अच्छा खरगोश बनाएं क्योंकि आपको इसे छूना है।

यह हमेशा संभवतः नहीं होगा, लेकिन आप भी सिर्फ परिवर्तन को तोड़ने के बिना एक और फाइल करने के लिए कोड है कि भारी पर Option Strict On (जैसे COM सामान) निर्भर करता है स्थानांतरित कर सकते हैं।

+0

धन्यवाद। मैं पूरी तरह से सहमत हूं कि "विकल्प सख्त" जाने का रास्ता है। अब मुझे बस अपनी टीम को मनाने की ज़रूरत है :-) – Flodpanter

+0

+1 प्रत्येक त्रुटि को ठीक करने के लिए +1। – MarkJ

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