मैं कोई ऐसा फ़ंक्शन लिखने की कोशिश कर रहा हूं जो कोई भी TList लेता है और TList के सभी तत्वों का एक स्ट्रिंग प्रतिनिधित्व देता है।डेल्फी: स्ट्रिंग्स ऑब्जेक्ट्स नहीं हैं
मैं इतना
function ListToString(list:TList<TObject>):String;
की तरह एक समारोह इस ठीक काम करता है की कोशिश की है, सिवाय इसके कि आप इसे करने के लिए एक TList<String>
पारित नहीं कर सकते हैं।
E2010 Incompatible types: 'TList<System.TObject>' and 'TList<System.string>'
डेल्फी में, एक स्ट्रिंग एक वस्तु नहीं है। इसे हल करने के लिए, मैंने एक दूसरा फ़ंक्शन लिखा है:
function StringListToString(list:TList<string>):String;
क्या यह एकमात्र समाधान है? स्ट्रिंग को अधिक 'ऑब्जेक्ट-जैसी' के रूप में इलाज करने के अन्य तरीके हैं?
इसी तरह की नस में, मैं दो टीएलिस्टों की तुलना करने के लिए 'बराबर' फ़ंक्शन भी लिखना चाहता था। फिर मैं एक ही समस्या
function AreListsEqual(list1:TList<TObject>; list2:TList<TObject>):boolean;
में चलाने वहाँ किसी भी तरह से इस समारोह (शायद जेनरिक का उपयोग कर?) लिखने के लिए है, तो यह भी एक TList<String>
संभाल कर सकते हैं? स्ट्रिंग्स और ऑब्जेक्ट्स को संभालने वाले कोड बनाने की कोशिश करते समय मुझे कोई अन्य चाल या 'सर्वोत्तम प्रथाओं' के बारे में पता होना चाहिए? या मैं बस हर समारोह के दो संस्करण बनाते हैं? जेनिक्स मदद कर सकते हैं?
मैं जावा पृष्ठभूमि से हूं लेकिन अब डेल्फी में काम करता हूं। ऐसा लगता है कि वे हाल ही में जावा दुनिया से डेल्फी में बहुत सी चीजें जोड़ रहे हैं (या शायद सी # दुनिया, जो उन्हें जावा से कॉपी करता है)। बराबर() और हैशकोड() को टॉब्जेक्ट करने और एक जेनेरिक संग्रह फ्रेमवर्क इत्यादि बनाने की तरह। मुझे आश्चर्य है कि क्या ये जोड़ बहुत व्यावहारिक हैं यदि आप उनके साथ स्ट्रिंग्स का उपयोग नहीं कर सकते हैं।
[संपादित करें: किसी ने TStringList का उल्लेख किया है। मैंने अभी तक इसका उपयोग किया है, लेकिन मैं टीएलिस्ट के बारे में पूछ रहा हूं। मैं बाहर काम करने के अगर (स्ट्रिंग्स सहित) सब कुछ के लिए TList का उपयोग कर जाने के लिए एक क्लीनर तरीका है कोशिश कर रहा हूँ।]
मैं वास्तव में 'TList' का समर्थन करने में अधिक प्रयास नहीं करता; कोई भी इसका उपयोग नहीं करता है क्योंकि [यह 'TStringList'] से कम है (http://stackoverflow.com/questions/279471/tstringlist-vs-tliststring)। कहीं और अपने प्रयासों पर ध्यान केंद्रित करें। –
TList की स्ट्रिंग प्रस्तुतिकरण कैसे दिखाई देगी? –