मैं एक संपत्ति जो जेनरिक का उपयोग करता है लिखने के लिए कोशिश कर रहा हूँ:संपत्ति डेल्फी में जेनेरिक्स का उपयोग कर
type TMyClass = class
protected
function GetCountBy<T: Class>: Integer;
public
property CountBy<T: Class>: Integer read GetCountBy<T>;
end;
लेकिन संकलन संदेश के साथ संपत्ति घोषणा पर विफल रहता है 'संपत्ति CountBy आधार वर्ग में मौजूद नहीं है', और संपत्ति नाम के उद्घाटन < पर लाल squiggle।
क्या यह हासिल करने का कोई तरीका है?
संपादित करें:
property ItemsBy<T: Class>[Index: Integer]: T read GetItemsBy<T> write SetItemsBy<T>;
समारोह एक सूची की सामग्री फिल्टर निर्दिष्ट वर्ग के Index'th आइटम लौटने के लिए: यहाँ मेरी अन्य उपयोग के मामले, जो और अधिक जटिल है, लेकिन वास्तविक जीवन है।
आप बस TDictionary यहाँ की जरूरत है। जेनेरिक इस समस्या के लिए उपयुक्त नहीं हैं। –
-1। यह एक बेहतर सवाल होगा यदि यह ऐसी समस्या से प्रेरित था जो वास्तव में जेनेरिक से लाभान्वित होगा। प्रश्न में "जेनेरिक प्रॉपर्टी" उदाहरण जेनिक्स की बिल्कुल आवश्यकता नहीं है। यह संभावित जुर्माना प्रश्न सामान्य गुण लिए सही सिंटैक्स (यदि ऐसा वाक्य रचना भी मौजूद है) के बारे में पूछ हो गया है, लेकिन उदाहरण समस्या वास्तव में जरूरत प्रदर्शित नहीं करता है इस तरह के वाक्य रचना द्वारा हल किया जा करने के लिए। –