में एक सामान्य वर्ग में एक प्रकार का उपनाम बनाना संभव है, मैं एक सामान्य वर्ग के लिए कक्षा प्रकार (प्रकार उपनाम) को परिभाषित करना चाहता हूं। मैं ऐसा करना चाहता हूं ताकि यूनिट बी के उपयोगकर्ताओं को यूनिट ए का उपयोग किये बिना टीएमटी टाइप तक पहुंच हो। मैं इस तरह इकाइयां हैं:क्या डेल्फी
unit a;
interface
type
TMyNormalObject = class
FData: Integer;
end;
TMyType<T> = class
FData: <T>;
end;
implementation
end.
unit b;
interface
type
TMyNormalObject = a.TMyNormalObject; // works
TMyType<T> = a.TMyType<T>; // E2508 type parameters not allowed on this type
implementation
end.
मैं पहले से ही एक संभावित समाधान पाया जो मैं क्योंकि यह कीड़े मुश्किल लागू कर सकते हैं पसंद नहीं है:
TMyType<T> = class(a.TMyType<T>);
इस दृष्टिकोण के साथ समस्या यह है कि यह एक नए वर्ग के प्रकार का परिचय देता है और एक। टीटी टाइप टाइप बीटीएम टाइप नहीं है (जबकि ए। टीएम नॉर्मल क्लास एक बीटीएमनोर्मल क्लास है और इसके विपरीत - वे एक ही कक्षा का जिक्र कर रहे हैं)।
यह संभव के 'TMyType' सभी उपयोगकर्ताओं इकाई ख से उल्लेख करने के लिए के लिए नहीं है? उस स्थिति में आपका कामकाज संभव हो सकता है। –
क्यों इंटरफ़ेस नहीं बनाते और अपने उपयोगकर्ताओं को इसका खुलासा नहीं करते? – whosrdaddy