2009-09-03 25 views
7

के साथ कथन का उपयोग करके मैंने सी # और वीबी दोनों में using कथन का उपयोग किया है। मैं कथन का उपयोग करके घोंसले के बारे में सभी आलोचकों से सहमत हूं (सी # अच्छी तरह से किया जाता है, वीबी इतना नहीं)एक से अधिक सिस्टम संसाधन

तो इस बात को ध्यान में रखते हुए मुझे अपने वीबी को "सिस्टम" से अधिक सिस्टम संसाधनों का उपयोग करके बयान का उपयोग करके सुधारने में दिलचस्पी थी एक ही ब्लॉक:

उदाहरण:

Using objBitmap As New Bitmap(100,100) 
    Using objGraphics as Graphics = Graphics.From(objBitmap) 
    End Using 
End Using 

इस तरह लिखा जा सका:

Using objBitmap As New Bitmap(100,100), objGraphics as Gaphics = Graphics.FromImage(objbitmap) 
End Using 

तो मेरे सवाल का क्या बेहतर तरीका है है?

मेरा आंत मुझे बताता है कि यदि संसाधन संबंधित/निर्भर हैं तो उपयोग कथन में एक से अधिक संसाधनों का उपयोग करना तार्किक है।

+0

क्या वे ब्लॉक केवल वीबी कंपाइलर के समान नहीं हैं? –

+0

हां संकलक कंपाइलर के समान हैं लेकिन – PersistenceOfVision

उत्तर

11

मेरे प्राथमिक भाषा सी # है, और ज्यादातर लोगों को "खड़ी" usings आप एक ही दायरे में उनमें से कई जब पसंद करते हैं:

using (X) 
using (Y) 
using (Z) 
{ 
    // ... 
} 

एकल कथन का उपयोग VB.NET है कि के साथ समस्या कि यह अव्यवस्थित लगता है और यह स्क्रीन के किनारे के गिरने की संभावना होगी। तो कम से कम उस परिप्रेक्ष्य से, एकाधिक उपयोग VB.NET में बेहतर दिखते हैं।

हो सकता है कि यदि आप लाइन निरंतरता के साथ दूसरे वाक्य रचना गठबंधन, यह बेहतर दिखेगा:

Using objBitmap As New Bitmap(100,100), _ 
     objGraphics as Graphics = Graphics.FromImage(objbitmap) 
    ' ... 
End Using 

कि तुम मुझे क्या बेहतर पठनीयता पर विचार करेंगे के करीब हो जाता है।

+0

का उपयोग करने से परिचित नहीं होने वाले किसी व्यक्ति के लिए भ्रम पैदा हो सकता है, इस तथ्य के कारण कि आप लाइन निरंतरता उदाहरण शामिल करते हैं, मैं आपके उत्तर को स्वीकार कर रहा हूं। मैं इसे पठनीयता में सुधार करने के विकल्प के रूप में जानता था लेकिन निरंतरता का उपयोग करना इसे हर किसी की पसंदीदा सी # संरचना की तरह दिखाना शुरू कर देता है। – PersistenceOfVision

+0

वास्तव में लाइन निरंतरता वाले वीबी संस्करण सी # संस्करण की तुलना में अधिक पठनीय है! कम से कम हम 'उपयोग' का गुच्छा नहीं देख रहे हैं – Unicornist

0

वे दोनों एक जैसे हैं, आपको वह चुनना चाहिए जिसे आप सबसे अधिक पढ़ने योग्य पाते हैं क्योंकि वे आईएल स्तर पर समान हैं।

मैं व्यक्तिगत रूप से जिस तरह से सी # इस वाक्य की अनुमति देकर इस संभालती है कि जैसे:

using (Foo foo = new Foo()) 
using (Bar bar = new Bar()) 
{ 
    // .... 
} 

हालांकि मैं इस फार्म (अपने दूसरे उदाहरण) की VB.NET बराबर लगता है नेस्टेड Using बयान से भी कम समय पठनीय होने के लिए आपके पहले उदाहरण से। लेकिन यह सिर्फ मेरी राय है। उस शैली को चुनें जो प्रश्न में कोड की पठनीयता के लिए उपयुक्त है क्योंकि यह एक महत्वपूर्ण बात है क्योंकि आउटपुट समान है।

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