मैंने हमेशा सोचा है कि यह मेरे संग्रह चर नामकरण में स्पष्ट होने के लिए "सर्वोत्तम अभ्यास" था। इसलिए, अगर मेरे पास कार ऑब्जेक्ट्स का संग्रह था, तो मैं आमतौर पर Car[]
carArray
और List<Car>
carList
नाम दूंगा।क्या मेरे बुरे काम मेरे साथ होंगे यदि मैं अपने सरणी, संग्रह, सूचियों, संख्याओं, आदि का नाम केवल उनके पास क्या है?
और फिर 99 के लिए समय की%, मैं
foreach (Car car in carArray)
{
...
}
अंत की तरह कुछ कर रही ... ... और मैं सोच रहा हूँ, मैं सिर्फ सरणी cars
बुलाया जा सकता था, और यह wouldn कोई फर्क नहीं पड़ता है।
और अब हमारे पास IEnumberable<T>
है, मुझे वास्तव में इस सवाल का सामना करना पड़ रहा है कि क्या मैं carIEnumerable
जैसे कुछ लिखने पर विचार कर सकता हूं? या carEnumerable
। अब तक, जवाब "नहीं" रहा है।
मेरी सोच यहां है कि संग्रह अक्सर कोई फर्क नहीं पड़ता, और जब ऐसा होता है, तब भी कोई फर्क नहीं पड़ता कि संग्रह प्रकार परिवर्तनीय नाम में लिखा गया है या नहीं। मेरे पास बस एक मामला था जहां मुझे IEnumerable<Car>
से List<Car>
पर स्विच करना पड़ा क्योंकि मुझे वस्तुओं को "ब्रैकेट एक्सेस" की आवश्यकता थी (उदा।, carList[3]
)। उस स्थिति में, दो संग्रह प्रकार समान व्यवहार नहीं करते हैं, लेकिन वेरिएबल cars
नामकरण एक समस्या रहे हैं?
इस प्रश्न में जटिलता की एक और परत जोड़ने के लिए नहीं, अगर मैं var
का उपयोग करता हूं तो क्या होगा? जैसे,
var cars = GetCars();
मैं निश्चित रूप से बता सकते हैं cars
संग्रह किसी तरह का है। मैं इसे फिर से कर सकता हूं। यदि मैं LINQ का उपयोग कर रहा हूं, तो मैं विस्तार विधियों का उपयोग कर सकता हूं। सबसे महत्वपूर्ण बात यह है कि, यदि मैं बाद में संग्रह के प्रकार को बदलता हूं, तो गड़बड़ी के साथ बहुत कम कोड होगा। var
अभी भी var
और cars
होगा cars
होगा। यह मेरे लिए बहुत आकर्षक लग रहा है, और मुझे बहुत नुकसान देखने में परेशानी हो रही है।
तो, यह सुनिश्चित करने के लिए कि मेरा प्रश्न स्पष्ट है: आप अपने संग्रह चर का नाम कैसे देते हैं और क्यों? क्या आइटम के नाम को "बहुवचन" करने के लिए कोई गंभीर पठनीयता या स्पष्टता लागत है?
नामकरण चर "कारएरे" सिर्फ हंगेरियन नोटेशन का उपयोग कर रहा है। यह आम तौर पर यूआई नियंत्रणों के अलावा सी # में खराब अभ्यास के रूप में डूब गया है। – RichardOD
ऐसा मत करो! यदि आप कारएरे के बजाय कारों का नाम देते हैं तो दुनिया खत्म हो जाएगी! – Powerlord
याद रखें कि आप सूची एट अल पर ElementAt() का उपयोग करके संख्याओं से तत्वों तक पहुंच सकते हैं। (मुझे नहीं पता कि ब्रैकेट IENumereables के लिए क्यों उपलब्ध नहीं हैं, लेकिन शायद एक अच्छा कारण है।) –