अपने लेख, द एरोकेनाव रूटीन में, मैंने एक उप प्रस्तुत किया है जिसका उपयोग आप निरंतर रूप में ऊपर और नीचे तीर कुंजियों की डिफ़ॉल्ट हैंडलिंग को ओवरराइड करने के लिए कर सकते हैं। जैसा कि मैंने इसे प्रस्तुत किया है, दिनचर्या के साथ समस्या यह है कि आपको इसे प्रत्येक नियंत्रण से कॉल करने की आवश्यकता है जहां आप तीर कुंजी कार्यक्षमता को ओवरराइड करना चाहते हैं।
यहां बताया गया है कि यह प्रपत्र मॉड्यूल में कैसा दिखाई दे सकता है:
Private Sub cbSupplierID_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub chkDiscontinued_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbID_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbListPrice_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
Private Sub tbProductCode_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav vbKeyDown, Shift
End Sub
Private Sub tbProductName_KeyDown(KeyCode As Integer, Shift As Integer)
ArrowKeyNav KeyCode, Shift
End Sub
इस स्थिति में हमें आवश्यक बॉयलरप्लेट कोड की मात्रा को कम करने के कुछ तरीके हैं, लेकिन हम इस लेख के प्रयोजनों के लिए इसे अलग रखने जा रहे हैं। तो, तर्क के लिए, आइए मान लें कि कोड की मात्रा को कम करने का कोई तरीका नहीं है। उस बाधा को देखते हुए, हम उपरोक्त कोड की पठनीयता कैसे बढ़ा सकते हैं?
कोड की पंक्तियों को कोलन कैरेक्टर के साथ जोड़ना
हम कोलन कैरेक्टर (:
. का उपयोग करके कोड की कई पंक्तियों में शामिल हो सकते हैं) )।
को टोकन नाम देने के लिए वाक्यात्मक व्याकरण के एक टर्मिनल तत्व के रूप में प्रयोग किया जाता है जो "कथन के अंत" मार्कर के रूप में कार्य करता है। सामान्य तौर पर, कथन के अंत को या कोलन कैरेक्टर द्वारा चिह्नित किया जाता है .
लाइनों को जोड़कर पठनीयता में सुधार करना
यह तकनीक कुछ ऐसी है जिसे आपको सावधानी से उपयोग करने की आवश्यकता है। लेकिन, अगर विवेकपूर्ण तरीके से उपयोग किया जाए, तो यह आपके कोड की पठनीयता को बढ़ा सकता है।
उपरोक्त नमूना कोड में, प्रत्येक उप समान सटीक कोड कहता है:
ArrowKeyNav KeyCode, Shift
दरअसल, यह सच नहीं है। अगर आप गौर से देखेंगे तो आप देखेंगे कि tbProductCode_KeyDown()
रूटीन पास vbKeyDown
KeyCode
. के बजाय पहले तर्क के रूप में।
मानक वीबीए स्वरूपण का उपयोग करके इस अंतर को याद करना आसान है, हालांकि:
गलत कोड को गलत दिखाना
यदि हम कॉलन का उपयोग करके लाइनों में शामिल होते हैं—और व्हाइटस्पेस को इस प्रकार समायोजित करते हैं कि हमारे सभी कॉल ArrowKeyNav
पर आ जाएं। बाएं-संरेखित हैं-फिर ऊपर में मिश्रित होने वाली असंगतता नीचे दिए गए कोड में एक गले में अंगूठे की तरह दिखती है:
जब सामान्य कार्यों और सबरूटीन्स के संदर्भ में देखा जाता है, तो बॉयलरप्लेट कोड का हमारा ब्लॉक स्पष्ट रूप से अलग होता है। यह अंतर हमारे कोड के सिग्नल से शोर अनुपात को बढ़ाने में मदद करता है: