मैं कोड के अगले टुकड़े है:क्या मुझे जादू तारों से बचना चाहिए?
internal static string GetNetBiosDomainFromMember(string memberName)
{
int indexOf = memberName.IndexOf("DC=", StringComparison.InvariantCultureIgnoreCase);
indexOf += "DC=".Length;
string domaninName = memberName.Substring(indexOf, memberName.Length - indexOf);
if (domaninName.Contains(","))
{
domaninName = domaninName.Split(new[] { "," }, StringSplitOptions.None)[0];
}
return domaninName;
}
मैं ई के लिए कुछ parsings बनाने रहा हूँ, इसलिए मैं की तरह "डीसी =", "objectCategory =", "LDAP: //" कुछ तार है, ", ","। " अमुक। (। तुम्हें पता है, विरोध पाया सकता है चलो 'मुझे पता है)
private const string DcString = "DC=";
private const string Comma = ",";
internal static string GetNetBiosDomainFromMember(string memberName)
{
int indexOf = memberName.IndexOf(DcString, StringComparison.InvariantCultureIgnoreCase);
indexOf += DcString.Length;
string domaninName = memberName.Substring(indexOf, memberName.Length - indexOf);
if (domaninName.Contains(CommaString))
{
domaninName = domaninName.Split(new[] { CommaString }, StringSplitOptions.None)[0];
}
return domaninName;
}
यहां तक कि मैं "डीसी" और हो सकता है "डीसी =", मैं में सोचना चाहिए: मैं ऊपर कोड नीचे दिए गए कोड की तुलना में अधिक पठनीय पाया । इस चर के लिए या दो में इन विभाजित :(तो मेरे सवाल का नाम: मैं संभव के रूप में जादू तार से बचें
UPDATED
कुछ निष्कर्ष:।
- तारों का उपयोग करने से बचने के तरीके हैं, जो बेहतर हो सकते हैं। इसे प्राप्त करने के लिए उपयोग किया जा सकता है: स्थैतिक वर्ग, गणक, संख्यात्मक स्थिरांक, आईओसी कंटेनर और यहां तक कि प्रतिबिंब।
- एक निरंतर स्ट्रिंग आपको यह सुनिश्चित करने में सहायता करती है कि आपके पास कोई टाइपो नहीं है (स्ट्रिंग के सभी संदर्भों में)।
- विराम चिह्न के लिए लगातार तारों में कोई वैश्विक अर्थशास्त्री नहीं है। इनका उपयोग करने के लिए और अधिक पठनीय होगा क्योंकि वे "," हैं। इस मामले के लिए निरंतर उपयोग करें यदि भविष्य में वह स्थिरता बदल सकती है, जैसे ""। (निरंतर आपके पास उस रिफैक्टरिंग में मदद कर सकता है हालांकि resharper के रूप में आधुनिक उपकरण स्थिर या चर की आवश्यकता के बिना ऐसा करते हैं)।
- यदि आप इसे लगातार स्थिर करने की आवश्यकता नहीं होने पर केवल स्ट्रिंग का उपयोग करते हैं। हालांकि इस बात पर विचार करें कि निरंतर दस्तावेज़ीकरण और दस्तावेज में दिखाया जा सकता है (जावाडॉक्स के रूप में)। गैर-तुच्छ स्ट्रिंग मानों के लिए यह महत्वपूर्ण हो सकता है।
मुझे लगता है कि आपको [इस] में रुचि हो सकती है (http://programmers.stackexchange.com/questions/142278/are-nullable-types-preferable-to-magic-numbers) विषय। – Torv
मुझे लगता है कि आप मेनमा से जवाब का लक्ष्य रखते हैं, है ना? –
हाँ आप सही हैं। ओह मैंने स्थापित किया [एक और दिलचस्प विषय] (http://programmers.stackexchange.com/questions/145738/should-a-string-constant-be-defined-if-its-only-going-to-be-used-once) तुम्हारे लिए। ये विषय प्रश्न का उत्तर नहीं देते हैं लेकिन वे दिलचस्प =) – Torv