VB.NET निजी क्षेत्रों के लिए नामकरण सम्मेलन

क्या VB.NET में निजी फ़ील्ड नामकरण के लिए कोई आधिकारिक सम्मेलन है? उदाहरण के लिए, यदि मेरे पास 'फू' नामक एक संपत्ति है, तो मैं आमतौर पर निजी फ़ील्ड '_Foo' कहता हूं। ऐसा लगता है कि ऑफिकल दिशानिर्देश :

"फ़ील्ड नामों के लिए उपसर्ग का प्रयोग न करें। उदाहरण के लिए, स्थिर बनाम गैर स्थैतिक फ़ील्ड को अलग करने के लिए g_ या s_ का उपयोग न करें।"

सी # में, आप निजी क्षेत्र 'foo', संपत्ति 'Foo' कह सकते हैं, और निजी क्षेत्र को कन्स्ट्रक्टर में 'this.foo' के रूप में संदर्भित कर सकते हैं। चूंकि वीबी.नेट केस असंवेदनशील है, आप यह नहीं कर सकते - कोई सुझाव?

0
ro fr bn
वे आधिकारिक दिशानिर्देश कक्षा पुस्तकालयों के विकास के लिए हैं, और केवल public तत्वों पर लागू होते हैं जो निजी नहीं हैं।
जोड़ा लेखक MarkJ, स्रोत

10 उत्तर

आधिकारिक दिशानिर्देश केवल यही हैं - दिशानिर्देश। आप हमेशा उनके चारों ओर जा सकते हैं। ऐसा कहा जा रहा है कि हम आमतौर पर दोनों सी # और वीबी.NET में अंडरस्कोर वाले फ़ील्ड उपसर्ग करते हैं। यह सम्मेलन काफी आम है (और जाहिर है, आधिकारिक दिशानिर्देशों को नजरअंदाज कर दिया गया है)।

निजी फ़ील्ड को फिर "मुझे" कीवर्ड के बिना संदर्भित किया जा सकता है ("यह" कीवर्ड सी # के लिए है :)

0
जोड़ा

मैं @lomaxx से सहमत हूं, दाएं सम्मेलन के मुकाबले टीम में लगातार होना महत्वपूर्ण है।

फिर भी, कोडिंग सम्मेलनों के लिए विचार और मार्गदर्शन प्राप्त करने के लिए यहां कई अच्छी जगहें दी गई हैं:

  1. Practical Guidelines and Best Practices for Microsoft Visual Basic and Visual C# Developers by Francesco Balena is a great book that addresses many of these issues.
  2. IDesign Coding Standards (for C# and for WCF)
  3. The .NET Framework Source Code (in VS2008)
0
जोड़ा

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

मुझे स्पष्टीकरण और स्थिरता के लिए "_" से बेहतर कुछ भी नहीं मिला है। विपक्ष में शामिल हैं:

मैं संपादक में उन्हें बंद करके लाइनों के चारों ओर मिलता हूं, और सीएलएस अनुपालन के बारे में ज्यादा सोचने की कोशिश नहीं करता हूं।

0
जोड़ा
सीएलएस अनुपालन निजी क्षेत्र के नामों की परवाह नहीं करता है।
जोड़ा लेखक Jonathan Allen, स्रोत

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

दिन के अंत में, सुसंगत होने से आपके कोड को "दाएं" सम्मेलनों के किसी भी सेट का उपयोग करने से अधिक पढ़ने योग्य और बनाए रखने योग्य बना दिया जाएगा।

0
जोड़ा

मैं निजी क्षेत्रों के लिए अंडरस्कोर उपसर्ग का उपयोग करना पसंद करता हूं। मैं विधि पैरामीटर के लिए लोअरकेस पहला अक्षर का उपयोग करता हूं। मैं तरीकों के लिए लोअरकेस कैमेलकेस पैरामीटर रखने के दिशानिर्देश का पालन करता हूं, जिसे मैं निजी क्षेत्रों के नामकरण से अधिक महत्वपूर्ण मानता हूं क्योंकि यह कक्षा के लिए एपीआई का हिस्सा है। । जैसे

Public Class Class1

    Private _foo As String
    Public Property Foo() As String
        Get
            Return _foo
        End Get
        Set(ByVal value As String)
            _foo = value
        End Set
    End Property

    Public Sub New(ByVal foo As String)
        _foo = foo
    End Sub

End Class

इस पैटर्न का उपयोग करते हुए, आपके पास निजी क्षेत्र और सी # या वीबी.नेट में आपके कन्स्ट्रक्टर पैरामीटर के साथ कोई नामकरण विवाद नहीं होगा।

0
जोड़ा

मुझे नहीं लगता कि एक आधिकारिक नामकरण सम्मेलन है, लेकिन मैंने देखा है कि माइक्रोसॉफ्ट माइक्रोसॉफ्ट में माइक्रोसॉफ्ट का उपयोग करता है। विज़ुअलबासिक डीएल (परावर्तक के माध्यम से)।

0
जोड़ा

यह व्यक्तिगत वरीयता है, हालांकि कुछ भेद होने के लिए व्यापक समर्थन है। सी # में भी मुझे नहीं लगता कि एक व्यापक रूप से इस्तेमाल किया जाने वाला सम्मेलन है।

Jeff Prosise says

व्यक्तिगत वरीयता के मामले में मैं आम तौर पर अंडरस्कोर [सी #] के साथ निजी फ़ील्ड का उपसर्ग करता हूं ... इस सम्मेलन का उपयोग .NET ढांचे में काफी उपयोग किया जाता है लेकिन इसका उपयोग पूरे समय में नहीं किया जाता है।

नेट फ्रेमवर्क डिज़ाइन दिशानिर्देश द्वितीय संस्करण पृष्ठ 73 से।

Jeffrey Richter says

मैं अपने सभी फ़ील्ड को निजी बनाता हूं और मैं अपने उदाहरण फ़ील्ड को "m_" और "स्थिर" फ़ील्ड के साथ "s_" [c #]

के साथ उपसर्ग करता हूं।

नेट फ्रेमवर्क डिज़ाइन दिशानिर्देश द्वितीय संस्करण पृष्ठ 47. एंथनी मूर ( बीसीएल टीम ) यह भी सोचती है कि "m_" और "s_" का उपयोग करने योग्य है, पृष्ठ 48।

0
जोड़ा

आपके द्वारा लिंक किए गए डिज़ाइन दिशानिर्देश विशेष रूप से बताते हैं कि वे केवल स्थिर सार्वजनिक और संरक्षित फ़ील्ड पर लागू होते हैं। डिजाइन दिशानिर्देश ज्यादातर सार्वजनिक एपीआई डिजाइन करने पर ध्यान केंद्रित करते हैं; आप अपने निजी सदस्यों के साथ क्या करते हैं आप पर निर्भर करता है। मैं सकारात्मक नहीं हूं लेकिन मुझे अपेक्षाकृत आश्वस्त है कि जब संकलक सीएलएस अनुपालन के लिए जांच करता है तो निजी सदस्यों पर विचार नहीं किया जाता है, क्योंकि केवल सार्वजनिक/संरक्षित सदस्य वहां खेलने के लिए आते हैं (विचार यह है कि, "क्या होगा यदि कोई ऐसी भाषा का उपयोग करता है जो _ चरित्र आपकी लाइब्रेरी का उपयोग करने की अनुमति नहीं देता है? "यदि सदस्य निजी हैं, तो जवाब" कुछ भी नहीं है, उपयोगकर्ता को इन सदस्यों का उपयोग करने की आवश्यकता नहीं है। "लेकिन यदि सदस्य सार्वजनिक हैं तो आप परेशानी में हैं। )

उस ने कहा, मैं गूंज कक्ष में जोड़ने जा रहा हूं और बताता हूं कि जो भी आप करते हैं, यह लगातार होना महत्वपूर्ण है। मेरे नियोक्ता को यह अनिवार्य है कि सी # और वीबी दोनों में निजी फ़ील्ड _ के साथ prefixed हैं, और क्योंकि हम सभी इस सम्मेलन का पालन करते हैं, किसी और द्वारा लिखित कोड का उपयोग करना आसान है।

0
जोड़ा

मैं सबसे महत्वपूर्ण मानता हूं कि शैली किस प्रकार उपयोग करती है लेकिन यह लगातार नहीं है।

इसके साथ ही, निजी क्षेत्रों के लिए नया एमएस/.NET स्टाइल _fooVar होता है (अंडरस्कोर एक ऊंट के बाद नाम)

0
जोड़ा

वीबी.नेट 4.0 में, आप में से ज्यादातर शायद जानते हैं कि आपको अपनी संपत्ति घोषणाओं के लिए गेटर्स और सेटर्स को स्पष्ट रूप से लिखने की आवश्यकता नहीं है:

Public Property Foo As String
Public Property Foo2 As String

वीबी स्वचालित रूप से _Foo और _Foo2 नामक निजी सदस्य चर बनाता है। ऐसा लगता है कि माइक्रोसॉफ्ट और वीएस टीम ने _ सम्मेलन अपनाया है, इसलिए मुझे इसके साथ कोई समस्या नहीं दिख रही है।

0
जोड़ा