किन कारणों से मुझे C # में "क्लीन" सेक्शन का उपयोग करना चाहिए?


11

एक बार जब मैं अपने कोड को रिफ्लेक्ट कर रहा था, तो मैंने अपने C # वर्ग के उपयोग करने के लिए IDE को ऊपर उठाया , और अप्रयुक्त नामस्थान और डुप्लिकेट नेमस्पेस को साफ किया , और उन सभी को सॉर्ट किया।

मेरी जोड़ी (जोड़ी प्रोग्रामिंग) ने मुझसे इसका कारण पूछा। मुझे नहीं पता था कि मैंने ऐसा क्यों किया। मैंने अपने सभी कोड को साफ सुथरा रखने के लिए इसे अपनी आदत से बाहर किया। मेरा मतलब है, मैंने उनसे कहा कि क्लीनर कोड होना सामान्य तौर पर एक अच्छा विचार है, लेकिन निश्चित रूप से यह कारण एक अच्छा औचित्य नहीं था, क्योंकि मैं किसी भी सी # कोड पेज के उपयोग अनुभाग में अपना समय बिताने के लिए परेशान नहीं करूंगा ।

चूंकि कई बार आप एक नाम स्थान से दूसरे नामस्थान पर एक कक्षा या एक एनम (या सामान्य रूप में एक प्रकार) को स्थानांतरित करते हैं, और यह आपके कोड में नए कथन का उपयोग करता है (या तो मैन्युअल रूप से कोड विंडो पर जाकर और स्वयं का उपयोग करके बयान लिखता है, या Alt+ Ctrl+ F10संयोजन का उपयोग करते हुए संपादक के माध्यम से ), और चूंकि इन नए बयानों का उपयोग करके अनुभाग का उपयोग करने के अंत में जोड़ा जाएगा , जो उन्हें वर्णानुक्रम में सॉर्ट नहीं करता है, और चूंकि कंपाइलर इन समस्याओं में से किसी के बारे में शिकायत नहीं करता है, तो हमें इसे बनाने की परवाह क्यों करनी चाहिए अनुभाग साफ और सुव्यवस्थित? हमारे पास क्या कारण हो सकते हैं?


5
यह पहले से ही पूछा गया है और स्टैक ओवरफ़्लो पर जवाब - stackoverflow.com/questions/4163320/unused-using-statements (और साइड पट्टी पर दोनों आपस में जुड़े सवाल) - मूल रूप से वहाँ अप्रयुक्त usings के बारे में चिंता करने के लिए कोई कारण नहीं है
ChrisF

महान संदर्भ @ChrisF, मुझे लगता है कि मुझे अपना जवाब मिल गया है। हो सकता है कि आपको उस एक के साथ सवाल करना चाहिए, या ऐसा ही कुछ करना चाहिए। :)
सईद नेमाटी

इसे भी देखें: stackoverflow.com/a/136646/333306

जवाबों:


22

कोई प्रदर्शन अंतर नहीं है, चाहे usingआपके पास कितने भी निर्देश हों।

लेकिन मुझे लगता है कि यह दो कारणों से उन्हें साफ रखने के लिए समझ में आता है:

  1. यदि आप usingएस को देखते हैं, तो आप देख सकते हैं कि फ़ाइल पर निर्भरता क्या है। यह आपको यह पता लगाने में मदद कर सकता है कि फ़ाइल में क्या प्रकार हैं। यदि आप ऐसा करते हैं, तो usingविशिष्ट क्रम में एस होने से आपको इसे तेजी से देखने में मदद मिलती है।
  2. यदि आपके पास बहुत अधिक usingएस हैं, तो यह संकेत दे सकता है कि आपके पास चिंताओं का खराब पृथक्करण है और फ़ाइल में प्रकार (ओं) बहुत अधिक हैं।

ये दोनों बहुत महत्वपूर्ण नहीं हैं, इसलिए आपको इसकी बहुत अधिक चिंता नहीं करनी चाहिए। लेकिन व्यक्तिगत रूप से, मुझे लगता है कि यह इसे usingसाफ रखने लायक बनाता है ।


8

उपयोग करने वाले कथनों के बीच सफाई करने के मेरे मुख्य कारण हैं:

  • बयानों का नामकरण करने की अधिक संभावना का उपयोग करते हुए, जिसका अर्थ होगा कि अस्पष्टता से बचने के लिए आपको कोड में नाम स्थान के कुछ हिस्सों को शामिल करना होगा।
  • IntelliSense आपके उपयोग किए गए कथनों में सभी विधानसभाओं के आधार पर फ़िल्टर किया गया है। इसलिए यदि आप इसे अनावश्यक बयानों से साफ करते हैं, तो आप इंटेलीजेंस की सटीकता के साथ मदद करके खुद की मदद करेंगे।

उसके ऊपर मैं अन्य उत्तरों से सहमत हूं कि यह पठनीयता बढ़ाता है और इससे यह अंदाजा लगाना आसान हो जाता है कि कक्षा में टाइप (ओं) का क्या किया जाता है।


मुझे समझ नहीं आता कि यह उच्च मतदान क्यों नहीं है। नेमस्पेस संघर्ष एक वैध समस्या है।
रबरडैक

7

"पूर्णता तब प्राप्त होती है जब जोड़ने के लिए कुछ भी नहीं बचता है, लेकिन जब कुछ भी शेष नहीं रह जाता है" - एंटोनी डी सेंट-एक्सुपरी

जब भी आप कुछ ऐसा हटा सकते हैं जो आवश्यक नहीं है और समझ नहीं जोड़ता है, तो ऐसा करें (पठनीयता अतिरिक्त कोड के लायक है)।


महान कामोद्दीपक। मुझे यह विचार पसंद आया। +1;)
सईद नेमाटी

4

यह सिर्फ सिग्नल से शोर को हटा रहा है। कम शोर का मतलब है कि संकेत प्राप्त करना आसान है, अर्थात कोड के इरादे को समझें।

शोर के एक जनरेटर के रूप में यह एक बहुत छोटा है, हालांकि।


2
  • यह आपके कोड की पठनीयता में सुधार करता है।
  • आम तौर पर इस दिशानिर्देश का पालन करने के लिए थोड़ा समझ में आता है यदि आपके पास बयानों का उपयोग करने वाले कुछ ही हैं

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

उदाहरण के लिए:

    using System.Web;

    using MyPlatform.FooX;        
    using MyPlatform.FooY;

    using MyFramework.Helpers;        
    using MyFramework.Extentions;

यदि मैं कक्षा को देखता हूं, तो मैं तुरंत देख सकता हूं कि दिया गया वर्ग System.Web असेंबली और साथ ही हमारे प्लेटफॉर्म और फ्रेमवर्क का उपयोग कर रहा है। यह मुझे इसकी निर्भरता और जटिलता का एक मोटा विचार देता है।

फिर आप इसे एक कदम आगे ले जा सकते हैं और बयानों का आदेश दे सकते हैं, लेकिन मुझे लगता है कि यह बयानों को कम पठनीय बनाता है, इसलिए मैं इसकी सिफारिश नहीं करूंगा।

using MyFramework.Extentions;
using MyFramework.Helpers;

using System.Web;

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