ड्रॉपडाउन लेबल में ByRef और ByVal को कैसे देखें? [बन्द है]


9

MSDN पर पेज ByRefऔर ByValकीवर्ड बहुत उपयोगी नहीं है, जब तक मैं किसी तरह इसे छोड़ नहीं देता, तब तक उन्हें हर जगह "कीवर्ड" के रूप में संदर्भित किया जाता है।

रबरडक परियोजना के मुख्य योगदानकर्ताओं में से एक बहुत ही बढ़िया एनकैप्सुलेट फील्ड रीफैक्टरिंग पर काम कर रहा है, और यूआई बहुत अच्छी तरह से आ रहा है .. सिवाय इसके कि मुझे ByRef/ के लिए ड्रॉपडाउन के ऊपर लेबल के साथ एक समस्या है ByVal, जो "एक्सेसिबिलिटी" कहती है।

रबरडक का "एनकैप्सुलेट फील्ड" रिफैक्टिंग डायलॉग है

मुझे "एक्सेसिबिलिटी" पसंद नहीं है क्योंकि मैं इसका उपयोग कहीं और Public/ Private/ Friendएक्सेस संशोधक के लिए कर रहा हूं जहां यह अधिक सटीक लगता है।

मैं "संशोधक" का उपयोग नहीं करना चाहता क्योंकि IMO यह "पहुँच संशोधक" के लिए छोटा है।

मुझे लगता है कि वह लेबल सटीक होना चाहिए, लेकिन मेरी शब्दावली में स्पष्ट रूप से कमी है और मुझे नहीं पता कि इन कीवर्ड को क्या कहते हैं।

इस लेबल को सटीक होने के लिए क्या कहना चाहिए? मैं जो शब्द खोज रहा हूं वह क्या है? "कीवर्ड का परिवार" क्या ByRef/ ByValसे संबंधित है?


2
जैसा कि टिप्पणियों में से एक कहता है, यह बिल्कुल नहीं होना चाहिए - एक संपत्ति के लिए ByRef थोड़ा पागल है। यदि संभव हो तो, यह बुराई है - आपको उनकी जानकारी के बिना कॉलर के चर को बदलने की अनुमति देता है।
jmoreno

"वीबी यूनिवर्स" में बहुत सारे प्रलेखन, (इसलिए, विशेष रूप से वीबीए नहीं) इसे "पासिंग मैकेनिज्म" के रूप में संदर्भित करता है।
डेमियन_इन_यूएनबेलिवर

@jmoreno मैं पूरी तरह से सहमत हूँ। मैं इसे मैन्युअल रूप से जनरेट किए गए कोड को संपादित करने और "समस्या हल" के अलावा ByValइसे बदलने की संभावना के बिना ByRefबनाऊंगा! VBA एक बहुत बड़ी मात्रा में बुराई बकवास को संकलित कर सकता है जिसे आप जानते हैं :-) फिर भी, मुझे पसंद है कि अंत में ऑनलाइन एक जगह है जो इन खोजशब्दों पर एक नाम रखती है।
मैथ्यू गुइंडन

जवाबों:


14

इस स्थिति में, मैं "पास के रूप में" (या "पास") का उपयोग करूंगा।

आपके पास एक प्रवाह है जो इस उपयोग से पूरी तरह मेल खाता है।

  • चर नाम : फू
  • पास के रूप में: ByVal / पास: ByRef

यह आपके वर्कफ़्लो को पूरी तरह से फिट करता है और संयोग से यह वही है जो आपके द्वारा संदर्भित लेख को इंगित करता है।

जैसा कि आप अपने विकल्पों के माध्यम से पढ़ते हैं, यह 'पास अस' का उपयोग करते समय पूरी तरह से पढ़ता है जैसा कि आप बस शीर्षक के माध्यम से पढ़ सकते हैं और उचित रूप से पाठ का चयन कर सकते हैं - "'परिवर्तनीय नाम' फू, 'पास अस' मान।"

यदि आप इसे थोड़ा बेहतर पढ़ना चाहते हैं, तो आप अपने सूची विकल्पों को "मूल्य" और "संदर्भ" बना सकते हैं, जो इस बात पर निर्भर करता है कि आपके लक्षित दर्शक VBA प्रोग्रामर या गैर-VBA प्रोग्रामर हैं, जो ByVal और ByRef कीवर्ड से थोड़ा कम परिचित हो सकते हैं ।

या वैकल्पिक रूप से, इसे "पास:" में बदल दें और ड्रॉपडाउन में इसे "संदर्भ (ByRef)" और "बाइ वैल्यू (ByVal)" बनाएं। ऐसा लगता है कि आपके ड्रॉपडाउन में यह सब पाठ दिखाने की जगह है। या सिर्फ ByRef / ByVal कीवर्ड।


मैं "पास का उपयोग करेंगे के रूप में ByVal" या "दर्रा द्वारा मूल्य"। "बाय बाय पास" अजीब लगता है।
user253751

@ मिनीबिस अच्छी कॉल!
एंडरलैंड

3
इसके अलावा, आप ड्रॉपडाउन के बजाय रेडियो बटन पर विचार कर सकते हैं, यह देखते हुए कि बहुत कम विकल्प हैं।
१०:१५ बजे

@Kyralessa कि वास्तव में क्या मैंने चैट में मैट को बताया है। और मुझे लगता है कि वे अंतिम डिजाइन :-)
एंडरलैंड के लिए

5

मैं ड्रॉपडाउन का चयन करने के लिए इन 3 शब्दों में से किसी एक का उपयोग करूंगा:

  1. शब्दार्थ
  2. के पास से निकला
  3. पैरामीटर संशोधक

मुझे "शब्दार्थ" पसंद है
मैथ्यू गुइंडन

मुझे "पैरामीटर संशोधक" पसंद है।

3

"पास बाय सेमैंटिक्स" संभवतः आपके लिए जो खोज रहे हैं उसके सबसे करीब है।


मेरी तेजी से वितरण टोपी चोरी आर्ग! Eeeeevil!
जिमी हॉफ

2
मेरे पास पहले से ही एक है, आपको यह देने के लिए खुश ...
ऊद

3

इसके लिए सबसे सटीक और औपचारिक शब्द "अलियासिंग शब्दार्थ" होगा।

जब ByRefउपयोग किया जाता है, तो फ़ंक्शन के अंदर का नाम कॉलर के चर के लिए एक उपनाम होता है - सभी परिवर्तन या तो एक दूसरे को तुरंत दिखाई देते हैं। ByValफ़ंक्शन के साथ , नाम कॉलर के चर की एक अलग प्रतिलिपि है (ज़ाहिर है, कॉलर और फ़ंक्शन की प्रतिलिपि दोनों एक ही ऑब्जेक्ट को संदर्भित कर सकते हैं, लेकिन वे इस बात में अलग हैं कि फ़ंक्शन के अंदर पैरामीटर को पुन: असाइन करने से कॉलर के चर को पुन: असाइन नहीं किया जाता है )।

विकल्प होंगे

  • उपनाम ( ByRef)
  • कॉपी ( ByVal)

कुछ प्लेटफ़ॉर्म एक तीसरी संभावना जोड़ते हैं, जहाँ कॉल करने वाले के वैरिएबल को अलियास किया जाता है, लेकिन ऑब्जेक्ट को अलियास करने के लिए एक से अधिक पैरामीटर की अनुमति नहीं है। (C restrictकीवर्ड के पीछे का विचार , कोई इसे IDL में भी पाता है, जहाँ विशेषता कीवर्ड है unique)। .NET के पास इस ज्ञान को एनकोड करने का अच्छा तरीका नहीं है।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.