_var
वर्ग क्षेत्र में एक चर नाम देखना आम है । अंडरस्कोर का क्या मतलब है? क्या इन सभी विशेष नामकरण सम्मेलनों के लिए एक संदर्भ है?
_var
वर्ग क्षेत्र में एक चर नाम देखना आम है । अंडरस्कोर का क्या मतलब है? क्या इन सभी विशेष नामकरण सम्मेलनों के लिए एक संदर्भ है?
जवाबों:
अंडरस्कोर बस एक सम्मेलन है; और कुछ नहीं। जैसे, इसका उपयोग हमेशा प्रत्येक व्यक्ति के लिए कुछ हद तक अलग होता है। यहाँ मैं उन्हें दो भाषाओं के लिए कैसे समझ सकता हूँ:
C ++ में, एक अंडरस्कोर आमतौर पर एक निजी सदस्य चर को इंगित करता है।
C # में, मैं आमतौर पर इसका उपयोग केवल सार्वजनिक संपत्ति के लिए अंतर्निहित निजी सदस्य चर को परिभाषित करते समय देखता हूं। अन्य निजी सदस्य चर का अंडरस्कोर नहीं होगा। हालांकि यह उपयोग काफी हद तक स्वचालित गुणों के आगमन के साथ हुआ है।
इससे पहले:
private string _name;
public string Name
{
get { return this._name; }
set { this._name = value; }
}
उपरांत:
public string Name { get; set; }
public string Name { get; private set; }
। सच है, यह पूरी तरह से अपरिवर्तनीय नहीं है, लेकिन यह वहां है।
_var
आरक्षित नहीं है।
C ++ में किसी भी चर नाम या पैरामीटर नाम से पहले UNDERSCORES का उपयोग नहीं करना सबसे अच्छा अभ्यास है
एक अंडरस्कोर या एक डबल अंडरस्कोर के साथ शुरू होने वाले नाम सी ++ कार्यान्वयनकर्ताओं के लिए आरक्षित हैं। अंडरस्कोर वाले नाम लाइब्रेरी में काम करने के लिए आरक्षित हैं।
यदि आप C ++ कोडिंग मानक पर पढ़ते हैं, तो आप देखेंगे कि पहले पृष्ठ में यह कहा गया है:
"नामकरण को ओवरलीग न करें, लेकिन एक सुसंगत नामकरण सम्मेलन का उपयोग करें: केवल दो ही हैं-डॉस: ए) कभी भी" अंडरहैंड किए गए नामों का उपयोग नहीं करते हैं, "जो अंडरस्कोर से शुरू होते हैं या जिनमें डबल अंडरस्कोर होता है;" (P2, C ++ कोडिंग मानक, हर्ब सटर और आंद्रेई अलेक्जेंड्रेस्कु)
विशेष रूप से, आईएसओ कामकाजी मसौदा वास्तविक नियमों को बताता है:
इसके अलावा, कुछ पहचानकर्ता C ++ कार्यान्वयन द्वारा उपयोग के लिए आरक्षित हैं और अन्यथा उपयोग नहीं किए जाएंगे; कोई निदान की आवश्यकता नहीं है। (ए) प्रत्येक पहचानकर्ता जिसमें एक डबल अंडरस्कोर __ होता है या एक अंडरस्कोर द्वारा शुरू होता है जिसके बाद एक अपरकेस अक्षर किसी भी उपयोग के लिए कार्यान्वयन के लिए आरक्षित होता है। (बी) प्रत्येक पहचानकर्ता जो एक अंडरस्कोर से शुरू होता है, वैश्विक नामस्थान में एक नाम के रूप में उपयोग के लिए कार्यान्वयन के लिए आरक्षित है।
यदि आप गलती से उपरोक्त सीमाओं में से एक में भटकते हैं, तो एक अंडरस्कोर के साथ एक प्रतीक शुरू करने से बचने के लिए सबसे अच्छा अभ्यास है।
आप अपने लिए इसे देख सकते हैं कि सॉफ्टवेयर विकसित करते समय अंडरस्कोर का ऐसा उपयोग विनाशकारी क्यों हो सकता है:
इस तरह से एक सरल helloWorld.cpp प्रोग्राम संकलित करने का प्रयास करें:
g++ -E helloWorld.cpp
आपको वह सब दिखाई देगा जो पृष्ठभूमि में होता है। यहाँ एक स्निपेट है:
ios_base::iostate __err = ios_base::iostate(ios_base::goodbit);
try
{
__streambuf_type* __sb = this->rdbuf();
if (__sb)
{
if (__sb->pubsync() == -1)
__err |= ios_base::badbit;
else
__ret = 0;
}
आप देख सकते हैं कि कितने नाम डबल अंडरस्कोर से शुरू होते हैं!
यदि आप आभासी सदस्य कार्यों को देखते हैं, तो आप देखेंगे कि * _vptr आभासी तालिका के लिए उत्पन्न सूचक है जो स्वचालित रूप से आपकी कक्षा में एक या एक से अधिक आभासी सदस्य कार्यों का उपयोग करते समय बनाया जाता है! लेकिन यह एक और कहानी है ...
यदि आप अंडरस्कोर का उपयोग करते हैं, तो आप संघर्ष के मुद्दों में पड़ सकते हैं और आपको कोई नुकसान नहीं होगा, क्योंकि यह बहुत देर हो चुकी है।
दरअसल यह _var
सम्मेलन VB नहीं C # या C ++ (m _, ... एक और बात है) से आता है।
यह गुण घोषित करते समय वीबी की असंवेदनशीलता को दूर करने के लिए आया था।
उदाहरण के लिए, इस तरह के कोड VB में है क्योंकि यह मानता है संभव नहीं है user
और User
एक ही पहचानकर्ता के रूप में
Private user As String
Public Property User As String
Get
Return user
End Get
Set(ByVal Value As String)
user = value
End Set
End Property
तो इस पर काबू पाने के लिए, कुछ ने इस तरह से आने के लिए निजी क्षेत्र में '_' जोड़ने के लिए एक सम्मेलन का इस्तेमाल किया
Private _user As String
Public Property User As String
Get
Return _user
End Get
Set(ByVal Value As String)
_user = value
End Set
End Property
चूँकि कई कन्वेंशन .Net के लिए हैं और C # et VB.NET कन्वेंशन के बीच कुछ एकरूपता रखने के लिए, वे उसी का उपयोग कर रहे हैं।
मुझे जो मैं कह रहा था उसका संदर्भ मिला: http : //10rem.net/articles/net-naming-conventions-and-programming-standards---best-practices
ऊंट केस लीडिंग अंडरस्कोर के साथ। VB.NET में, हमेशा "संरक्षित" या "निजी" इंगित करें, "मंद" का उपयोग न करें। "M_" का उपयोग हतोत्साहित किया जाता है, जैसा कि एक चर नाम का उपयोग होता है, जो केवल मामले से संपत्ति से अलग होता है, विशेष रूप से संरक्षित चर के साथ जो अनुपालन का उल्लंघन करता है, और यदि आप VB.NET में प्रोग्राम करते हैं, तो आपके जीवन को दर्द होगा। अपने सदस्यों को एक्सेसर / म्यूटेटर गुणों से अलग कुछ नाम देना होगा। यहां सभी वस्तुओं में से, प्रमुख अंडरस्कोर वास्तव में एकमात्र विवादास्पद है। मैं व्यक्तिगत रूप से अपने निजी चर के लिए सीधे अंडरस्कोर-कम ऊंट के मामले में इसे पसंद करता हूं ताकि मुझे "इस" नाम के साथ चर को योग्य न करना पड़े। कंस्ट्रक्टर्स या अन्य जगहों पर मापदंडों से अलग होने की संभावना है जहां मुझे नामकरण की टक्कर होगी। VB.NET के मामले में असंवेदनशीलता के साथ, यह और भी महत्वपूर्ण है क्योंकि आपके एक्सेसर के गुणों में आमतौर पर अंडरस्कोर को छोड़कर आपके निजी सदस्य चर के समान नाम होगा। जहाँ तक m_ जाता है, यह वास्तव में सिर्फ सौंदर्यशास्त्र के बारे में है। मैं (और कई अन्य) m_ बदसूरत पाते हैं, क्योंकि ऐसा लगता है कि चर नाम में एक छेद है। यह लगभग आक्रामक है। मैं हर समय VB6 में इसका इस्तेमाल करता था, लेकिन यह केवल इसलिए था क्योंकि चर एक अग्रणी अंडरस्कोर नहीं हो सकते थे। मैं यह देखकर खुश नहीं हो सकता था कि वह चली जाए। Microsoft ने m_ (और सीधे _) के खिलाफ अनुशंसा की, भले ही उन्होंने अपने कोड में दोनों किया हो। इसके अलावा, एक सीधे "एम" के साथ उपसर्ग करना सही है। बेशक, चूंकि वे मुख्य रूप से सी # में कोड करते हैं, उनके पास निजी सदस्य हो सकते हैं जो केवल गुणों के मामले में भिन्न होते हैं। VB लोगों को कुछ और करना होगा। कोशिश करने और भाषा-दर-भाषा विशेष मामलों के साथ आने के बजाय, मैं सभी भाषाओं के लिए प्रमुख अंडरस्कोर की सिफारिश करता हूं जो इसका समर्थन करेंगे। यदि मैं चाहता हूं कि मेरी कक्षा पूरी तरह से सीएलएस-अनुरूप हो, तो मैं किसी भी # सुरक्षित सदस्य चर पर उपसर्ग छोड़ सकता हूं। हालांकि, मैं इस बारे में कभी चिंता नहीं करता, क्योंकि मैं सभी संभावित संरक्षित सदस्य चर को निजी रखता हूं, और इसके बजाय संरक्षित एक्सेसर्स और म्यूटेटर की आपूर्ति करता हूं। क्यों: संक्षेप में, यह सम्मेलन सरल (एक चरित्र) है, पढ़ने में आसान है (आपकी आंख अन्य प्रमुख पात्रों से विचलित नहीं है), और सफलतापूर्वक प्रक्रिया-स्तरीय चर और वर्ग-स्तरीय गुण के साथ नामकरण टकराव से बचा जाता है। । मैं सभी भाषाओं के लिए अग्रणी अंडरस्कोर की सिफारिश करता हूं जो इसका समर्थन करेंगे। यदि मैं चाहता हूं कि मेरी कक्षा पूरी तरह से सीएलएस-अनुरूप हो, तो मैं किसी भी # सुरक्षित सदस्य चर पर उपसर्ग छोड़ सकता हूं। हालांकि, मैं इस बारे में कभी चिंता नहीं करता, क्योंकि मैं सभी संभावित संरक्षित सदस्य चर को निजी रखता हूं, और इसके बजाय संरक्षित एक्सेसर्स और म्यूटेटर की आपूर्ति करता हूं। क्यों: संक्षेप में, यह सम्मेलन सरल (एक चरित्र) है, पढ़ने में आसान है (आपकी आंख अन्य प्रमुख पात्रों से विचलित नहीं है), और सफलतापूर्वक प्रक्रिया-स्तरीय चर और वर्ग-स्तरीय गुण के साथ नामकरण टकराव से बचा जाता है। । मैं सभी भाषाओं के लिए अग्रणी अंडरस्कोर की सिफारिश करता हूं जो इसका समर्थन करेंगे। यदि मैं चाहता हूं कि मेरी कक्षा पूरी तरह से सीएलएस-अनुरूप हो, तो मैं किसी भी # सुरक्षित सदस्य चर पर उपसर्ग छोड़ सकता हूं। हालांकि, मैं इस बारे में कभी चिंता नहीं करता, क्योंकि मैं सभी संभावित संरक्षित सदस्य चर को निजी रखता हूं, और इसके बजाय संरक्षित एक्सेसर्स और म्यूटेटर की आपूर्ति करता हूं। क्यों: संक्षेप में, यह सम्मेलन सरल (एक चरित्र) है, पढ़ने में आसान है (आपकी आंख अन्य प्रमुख पात्रों से विचलित नहीं है), और सफलतापूर्वक प्रक्रिया-स्तरीय चर और वर्ग-स्तरीय गुण के साथ नामकरण टकराव से बचा जाता है। । मैं इस बारे में कभी चिंता नहीं करता क्योंकि मैं सभी संभावित संरक्षित सदस्य चर को निजी रखता हूं, और इसके बजाय संरक्षित एक्सेसर्स और म्यूटेटर की आपूर्ति करता हूं। क्यों: संक्षेप में, यह सम्मेलन सरल (एक चरित्र) है, पढ़ने में आसान है (आपकी आंख अन्य प्रमुख पात्रों से विचलित नहीं है), और सफलतापूर्वक प्रक्रिया-स्तरीय चर और वर्ग-स्तरीय गुण के साथ नामकरण टकराव से बचा जाता है। । मैं इस बारे में कभी चिंता नहीं करता क्योंकि मैं सभी संभावित संरक्षित सदस्य चर को निजी रखता हूं, और इसके बजाय संरक्षित एक्सेसर्स और म्यूटेटर की आपूर्ति करता हूं। क्यों: संक्षेप में, यह सम्मेलन सरल (एक चरित्र) है, पढ़ने में आसान है (आपकी आंख अन्य प्रमुख पात्रों से विचलित नहीं है), और सफलतापूर्वक प्रक्रिया-स्तरीय चर और वर्ग-स्तरीय गुण के साथ नामकरण टकराव से बचा जाता है। ।
पहले टिप्पणीकार (आर सैमुअल क्लैचको) ने संदर्भित किया: सी ++ पहचानकर्ता में अंडरस्कोर का उपयोग करने के बारे में क्या नियम हैं? जो C ++ में अंडरस्कोर के बारे में सवाल का जवाब देता है। सामान्य तौर पर, आप एक प्रमुख अंडरस्कोर का उपयोग करने वाले नहीं हैं, क्योंकि यह आपके कंपाइलर के कार्यान्वयन के लिए आरक्षित है। आप जिस कोड के साथ देख रहे हैं, _var
वह या तो विरासत कोड है, या किसी के द्वारा लिखा गया कोड जो पुराने नामकरण प्रणाली का उपयोग करके बड़ा हुआ है जो अग्रणी अंडरस्कोर पर नहीं चढ़ा था।
अन्य उत्तर के रूप में, यह कक्षा सदस्य चर की पहचान करने के लिए C ++ में उपयोग किया जाता है। हालाँकि, इसका कोई विशेष अर्थ नहीं है जहाँ तक सज्जाकार या वाक्यविन्यास जाता है। इसलिए यदि आप इसका उपयोग करना चाहते हैं, तो यह संकलन करेगा।
मैं सी # चर्चा दूसरों पर छोड़ दूंगा।
_वर का कोई अर्थ नहीं है और केवल यह भेद करना आसान बनाने के उद्देश्य से कार्य करता है कि चर एक निजी सदस्य चर है।
C ++ में, _var कन्वेंशन का उपयोग करना खराब रूप है, क्योंकि एक पहचानकर्ता के सामने अंडरस्कोर के उपयोग को नियंत्रित करने वाले नियम हैं। _var एक वैश्विक पहचानकर्ता के रूप में आरक्षित है, जबकि _Var (अंडरस्कोर + कैपिटल लेटर) कभी भी आरक्षित है। यही कारण है कि C ++ में, आप लोगों को इसके बजाय var_ सम्मेलन का उपयोग करते हुए देखेंगे।
आप अपनी खुद की कोडिंग दिशानिर्देश बना सकते हैं। बस बाकी टीम के लिए एक स्पष्ट दस्तावेज लिखें।
_Field का उपयोग करने से Intelilsense को केवल टाइपिंग _ सभी वर्ग चर को फ़िल्टर करने में मदद मिलती है।
मैं आमतौर पर ब्रैड एडम्स दिशानिर्देशों का पालन करता हूं , लेकिन यह अंडरस्कोर का उपयोग नहीं करने की सिफारिश करता है।
C # के लिए Microsoft नामकरण मानक कहता है कि चर और मापदंडों को कम ऊँट केस फॉर्म IE का उपयोग करना चाहिए paramName
। मानक भी फ़ील्ड के लिए उसी फॉर्म का पालन करने के लिए कहता है लेकिन इससे अस्पष्ट कोड हो सकता है ताकि स्पष्टता IE को बेहतर बनाने के लिए कई टीम अंडरस्कोर उपसर्ग का आह्वान करें _fieldName
।
C # के साथ, Microsoft फ्रेमवर्क डिज़ाइन दिशानिर्देश सार्वजनिक सदस्यों के लिए अंडरस्कोर वर्ण का उपयोग नहीं करने का सुझाव देते हैं । के लिए निजी सदस्यों, अंडरस्कोर उपयोग करने के लिए ठीक हैं। वास्तव में, जेफरी रिक्टर (अक्सर दिशानिर्देशों में उद्धृत) उदाहरण के लिए एक m_ और निजी स्थिर सदस्यों के लिए "s_" का उपयोग करता है।
निजी तौर पर, मैं अपने निजी सदस्यों को चिह्नित करने के लिए सिर्फ _ का उपयोग करता हूं। हंगेरियन नोटेशन पर "m_" और "s_" क्रिया है जो न केवल .NET में फॉलो की जाती है, बल्कि काफी क्रिया हो सकती है और मुझे कई सदस्यों के साथ कक्षाएं लगती हैं जो कि वर्णक्रमीय रूप से त्वरित रूप से आंख स्कैन करना मुश्किल है (कल्पना करें कि सभी 10 चर m_ से शुरू होते हैं) ।
मैं अपनी कक्षाओं के सदस्य चर के लिए _var नामकरण का उपयोग करता हूं। इसके 2 मुख्य कारण हैं:
1) जब मैं अपना कोड बाद में पढ़ रहा होता हूं, तो यह मुझे कक्षा चर और स्थानीय फ़ंक्शन चर का ट्रैक रखने में मदद करता है।
2) जब मैं एक वर्ग चर की तलाश कर रहा हूं तो यह इंटेलीसेन्स (या अन्य कोड-पूरा करने वाली प्रणाली) में मदद करता है। बस पहला वर्ण जानना उपलब्ध चर और विधियों की सूची के माध्यम से फ़िल्टर करने में सहायक है।
जहाँ तक C और C ++ भाषाओं का संबंध है, नाम में एक अंडरस्कोर (शुरुआत, मध्य या अंत) का कोई विशेष अर्थ नहीं है। यह सिर्फ एक वैध चर नाम चरित्र है। "सम्मेलनों" एक कोडिंग समुदाय के भीतर कोडिंग प्रथाओं से आते हैं।
जैसा कि ऊपर दिए गए विभिन्न उदाहरणों से पहले ही संकेत मिल चुका है, शुरुआत में _ का मतलब C ++ में किसी वर्ग के निजी या संरक्षित सदस्य हो सकते हैं।
मुझे केवल कुछ इतिहास दें जो मजेदार ट्रिविया हो सकते हैं। UNIX में यदि आपके पास एक कोर सी लाइब्रेरी फ़ंक्शन और एक कर्नेल बैक-एंड है, जहां आप कर्नेल फ़ंक्शन को उपयोगकर्ता स्थान में उजागर करना चाहते हैं और साथ ही _ फ़ंक्शन स्टब के सामने अटक जाता है जो कर्नेल फ़ंक्शन को सीधे कुछ और किए बिना कहता है। इसका सबसे प्रसिद्ध और परिचित उदाहरण BSD और SysV प्रकार कर्नेल के तहत बाहर निकलें () बनाम _exit () है: कर्नेल की निकास सेवा को कॉल करने से पहले उपयोगकर्ता-अंतरिक्ष सामान करता है, जबकि _exit कर्नेल की निकास सेवा के लिए मैप करता है।
तो _ का उपयोग इस मामले में "स्थानीय" सामान के लिए किया जाता था स्थानीय मशीन-स्थानीय। आमतौर पर _functions () पोर्टेबल नहीं थे। इसमें आपको विभिन्न प्लेटफार्मों पर समान व्यवहार की उम्मीद नहीं करनी चाहिए।
अब चर नामों में _ जैसे कि
int _foo;
अच्छी तरह से मनोवैज्ञानिक रूप से, एक _ शुरुआत में टाइप करने के लिए एक अजीब बात है। इसलिए यदि आप एक वैरिएबल नाम बनाना चाहते हैं जिसमें कुछ और के साथ टकराव की संभावना कम होगी, तो ESPECIALLY जब आप प्री-प्रोसेसर के विकल्प से निपटना चाहते हैं तो _ के उपयोग पर विचार करें।
मेरी मूल सलाह हमेशा आपके कोडिंग समुदाय के सम्मेलन का पालन करना होगा, ताकि आप अधिक प्रभावी ढंग से सहयोग कर सकें।
बहुत से लोग निजी क्षेत्रों को एक अंडरस्कोर के साथ उपसर्ग करना पसंद करते हैं। यह सिर्फ एक नामकरण सम्मेलन है।
C # के 'आधिकारिक' नामकरण सम्मेलनों में निजी क्षेत्रों के लिए सरल लोअरकेस नाम (कोई अंडरस्कोर) नहीं है।
मुझे C ++ के लिए मानक सम्मेलनों की जानकारी नहीं है, हालांकि अंडरस्कोर बहुत व्यापक रूप से उपयोग किया जाता है।
यह सिर्फ एक सम्मेलन है कुछ प्रोग्रामर इसे स्पष्ट करने के लिए उपयोग करते हैं जब आप वर्ग के सदस्य या किसी अन्य प्रकार के चर (पैरामीटर, फ़ंक्शन के लिए स्थानीय, आदि) में हेरफेर कर रहे हैं। एक और सम्मेलन जो सदस्य चर के लिए व्यापक उपयोग में है, वह 'm_' के साथ नाम का उपसर्ग कर रहा है।
वैसे भी, ये केवल कन्वेंशन हैं और आपको इन सभी के लिए एक भी स्रोत नहीं मिलेगा। वे शैली की बात कर रहे हैं और प्रत्येक प्रोग्रामिंग टीम, परियोजना या कंपनी का अपना (या यहां तक कि कोई भी नहीं है)।
C # में इसका उपयोग करने का पूरी तरह से कानूनी कारण है: यदि कोड VB.NET से भी एक्स्टेंसिबल होना चाहिए। (अन्यथा, मैं नहीं होता।)
चूंकि VB.NET केस असंवेदनशील है, इसलिए field
इस कोड में संरक्षित सदस्य तक पहुंचने का कोई सरल तरीका नहीं है :
public class CSharpClass
{
protected int field;
public int Field { get { return field; } }
}
उदाहरण के लिए, यह संपत्ति पाने वाले को एक्सेस करेगा, न कि फील्ड को:
Public Class VBClass
Inherits CSharpClass
Function Test() As Integer
Return Field
End Function
End Class
बिल्ली, मैं भी नहीं लिख सकता field
लोअरकेस में - वीएस 2010 सिर्फ इसे सही करता है।
VB.NET में व्युत्पन्न वर्गों के लिए इसे आसानी से सुलभ बनाने के लिए, एक और नामकरण सम्मेलन के साथ आना होगा। अंडरस्कोर को उपसर्ग करना शायद कम से कम घुसपैठ और उनमें से सबसे "ऐतिहासिक रूप से स्वीकृत" है।
पुराना प्रश्न, नया उत्तर (C #)।
C # के लिए अंडरस्कोर का एक और उपयोग ASP NET Core के DI (निर्भरता इंजेक्शन) के साथ है। readonly
एक वर्ग के निजी चर जो निर्माण के दौरान इंजेक्शन इंटरफ़ेस को सौंपा गया है, एक अंडरस्कोर के साथ शुरू होना चाहिए। मुझे लगता है कि यह एक बहस है कि क्या किसी वर्ग के प्रत्येक निजी सदस्य के लिए अंडरस्कोर का उपयोग करना है (हालांकि Microsoft स्वयं इसका अनुसरण करता है) लेकिन यह निश्चित है।
private readonly ILogger<MyDependency> _logger;
public MyDependency(ILogger<MyDependency> logger)
{
_logger = logger;
}
इस तरह एक नामकरण सम्मेलन उपयोगी है जब आप कोड पढ़ रहे हैं, विशेष रूप से कोड जो आपका अपना नहीं है। एक मजबूत नामकरण सम्मेलन यह इंगित करने में मदद करता है कि किसी विशेष सदस्य को कहां परिभाषित किया गया है, वह किस प्रकार का सदस्य है, आदि। अधिकांश विकास दल एक साधारण नामकरण सम्मेलन को अपनाते हैं, और केवल एक अंडरस्कोर ( _fieldName
) के साथ सदस्य उपसर्ग फ़ील्ड बनाते हैं । अतीत में, मैंने C # के लिए निम्नलिखित नामकरण सम्मेलन का उपयोग किया है (जो .NET फ्रेमवर्क कोड के लिए माइक्रोसोफ्ट कन्वेंशन पर आधारित है, जिसे रिफ्लेक्टर के साथ देखा जा सकता है):
इंस्टेंस फील्ड: m_fieldName
स्टेटिक फील्ड: s_fieldName
सार्वजनिक / संरक्षित / आंतरिक सदस्य: PascalCasedName ()
निजी सदस्य: camelCasedName ()
यह अपरिचित कोड को बहुत तेज़ी से पढ़ने पर लोगों की संरचना, उपयोग, पहुंच और सदस्यों के स्थान को समझने में मदद करता है।