सी ++ में 'इस' के डेल्फी समकक्ष क्या है? क्या आप इसके उपयोग के कुछ उदाहरण दे सकते हैं?डेल्फी में इंस्टेंस संदर्भ?
उत्तर
ज्यादातर मामलों में, आपको विधियों में self
का उपयोग नहीं करना चाहिए।
type
TMyClass = class
public
Value: string;
procedure MyMethod;
procedure AddToList(List: TStrings);
end;
procedure TMyClass.MyMethod;
begin
Value := 'abc';
assert(self.Value='abc'); // same as assert(Value=10)
end;
self
जब आप वर्तमान निर्दिष्ट करना चाहते हैं इस्तेमाल किया जा रहा है:
वास्तव में, यह जब तुम वर्ग गुण और विधियों का उपयोग, एक वर्ग विधि के भीतर की तरह अगर वहाँ एक अंतर्निहित self.
उपसर्ग थी किसी अन्य विधि या वस्तु पर ऑब्जेक्ट करें।
उदाहरण के लिए:
procedure TMyClass.AddToList(List: TStrings);
var i: integer;
begin
List.AddObject(Value,self);
// check that the List[] only was populated via this method and this object
for i := 0 to List.Count-1 do
begin
assert(List[i]=Value);
assert(List.Objects[i]=self);
end;
end;
इस उपरोक्त कोड List.Objects [] TMyClass उदाहरण की ओर इशारा करते के साथ TStrings
सूची में एक आइटम जोड़ देगा। और यह जांच करेगा कि यह सूची के सभी वस्तुओं के लिए मामला है।
डेल्फी में स्वयं इसके बराबर है। यह here में वर्णित अनुसार असाइन करने योग्य भी है।
ध्यान दें कि, चूंकि यह मूल्य से गुजरता है, इसलिए स्वयं को असाइन करना बहुत उपयोगी नहीं है, हालांकि यह किया जा सकता है। ऐसा नहीं होगा, जैसा कि कुछ उम्मीद कर सकते हैं, एक कन्स्ट्रक्टर से "वापसी" शून्य (रचनाकार वास्तव में कुछ भी "वापस नहीं" करते हैं - असाइनमेंट सिंटैक्स सिर्फ एक सुविधा है)। –
हमम ... मैं देखता हूं कि आपके द्वारा जुड़े एसओ प्रश्न में लोग वही कहते हैं। –
स्वयं को सौंपना एक कोने का मामला है और आम तौर पर आपको ऐसा करने की आवश्यकता नहीं होती है क्योंकि इसे खराब अभ्यास के रूप में माना जा सकता है। फिर भी, एक वर्ग के संदर्भ के रूप में स्वयं का उपयोग केवल तभी उपयोगी होता है जब कोई गैर मानक नामकरण सम्मेलनों का उपयोग कर रहा हो। मानक सम्मेलन एफ का उपयोग कक्षा चर के उपसर्ग (उदाहरण के रूप में FIs सही) और ए प्रक्रिया/कार्य तर्क (एआईएस सुधार) के रूप में होगा। फिर, कक्षा चर के असाइनमेंट जितना आसान होगा FISCorrect: = AIs सही, वैकल्पिक रूप से आपको स्वयं का उपयोग करने की आवश्यकता होगी। गलत: = अगर सही है (प्रक्रिया) तर्क है: गलत है: बूलियन। – too
- 1. ऐपडिलेगेट इंस्टेंस वैरिएबल का संदर्भ
- 2. मुझे डेल्फी परियोजना में फ़ाइल संदर्भ कब जोड़ना चाहिए?
- 3. जावा में इंस्टेंस सेट?
- 4. डेल्फी में किसी संदर्भ के सभी संदर्भ और लिंक देखने का कोई तरीका है?
- 5. डेल्फी
- 6. सी # स्टेटिक इंस्टेंस बनाम ऑब्जेक्ट इंस्टेंस
- 7. डेल्फी
- 8. रेल मॉडल में इंस्टेंस वैरिएबल
- 9. में डेल्फी
- 10. डेल्फी
- 11. कोडनिर्देशक: इंस्टेंस
- 12. जेबॉस इंस्टेंस
- 13. "इंस्टेंस स्टोर"
- 14. आईओएस 5 इंस्टेंस वैरिएबल
- 15. "डेल्फी बुनियादी बातों" डेल्फी में 2009
- 16. सी ++ संदर्भ पैरामीटर के बराबर डेल्फी क्या है?
- 17. डेल्फी: संदर्भ द्वारा पास या मूल्य से पास?
- 18. LINQ - क्या कहां अभिव्यक्ति नया उदाहरण या ऑब्जेक्ट इंस्टेंस के संदर्भ में
- 19. अजीब ए वी जब एक डेल्फी इंटरफ़ेस संदर्भ
- 20. डेल्फी
- 21. डेल्फी
- 22. डेल्फी
- 23. इंस्टेंस वैरिएबल अभी भी 'dup'
- 24. डेल्फी स्ट्रिंग
- 25. डेल्फी इनलाइन असेंबलर
- 26. डेल्फी में फ़ॉन्ट चिकनाई
- 27. डेल्फी में फेसबुक चैट?
- 28. डेल्फी में स्क्वायर ब्रैकेट्स?
- 29. डेल्फी में ऑटोस्क्रोलिंग ज्ञापन
- 30. डेल्फी में वायरस 7
@AB - "निहित आत्म" - चूंकि मैंने पाइथन के साथ गड़बड़ करना शुरू कर दिया है, जिसके लिए किसी भी आंतरिक वर्ग के सदस्य का संदर्भ देते समय 'स्वयं' की आवश्यकता होती है, मैंने इसे डेल्फी में भी करना शुरू कर दिया है - मुझे यकीन नहीं है कि मुझे यह पसंद है या स्टाइलिस्टिक रूप से नहीं, लेकिन ऐसा लगता है कि कोड की त्वरित स्कैनिंग की सुविधा है। – Vector
@ माइकी डेल्फी में सामान्य अभ्यास 'self.' उपसर्ग का उपयोग नहीं करना है। वास्तव में, आईडीई इंटेलिजेंस आपको संपत्ति नामों तक त्वरित रूप से पहुंचने की अनुमति देता है, या माउस पॉप-अप संकेत या Ctrl + क्लिक के साथ घोषणा को देखता है - इसलिए इस उपसर्ग को निर्दिष्ट करने की कोई आवश्यकता नहीं है।यदि आप अपने कोड में वैश्विक चर परिभाषित नहीं करते हैं (यह अच्छे कोड के लिए आवश्यक है), तो आप जानते हैं कि आपके विधियों कोड में पहचानकर्ता संपत्ति/विधि नाम हैं। इसलिए, आपको अपने तरीकों में 'self.' उपसर्ग का उपयोग नहीं करना चाहिए (जब तक' कथन 'के अंदर नहीं)। –
@AB - मैं आपके द्वारा बताए गए सभी लोगों से जानता हूं और सहमत हूं लेकिन यह इसका उपयोग करने के मेरे कारण को अस्वीकार नहीं करता है। यदि आप कोड के एक टुकड़े को स्कैन/स्पीड करना चाहते हैं, तो 'स्वयं' मदद करता है - अक्सर मैं वापस बैठना चाहता हूं और बिना किसी माउस या इंटरैक्शन के कोड पढ़ता हूं, और मैं अभी भी कोड प्रिंट करना चाहता हूं और इसे पढ़ना चाहता हूं। तो यह "स्वयं सहायता" दृष्टिकोण है .... एलओएल – Vector