मैं 'पॉलिमॉर्फिक' कॉम्पोर्टमेंट के साथ एक रिकॉर्ड (संरचना) रखना चाहता हूं। इसमें सभी मामलों में कई फ़ील्ड उपयोग किए जाएंगे, और जब मैं उन्हें आवश्यकता हो तो मैं केवल अन्य क्षेत्रों का उपयोग करना चाहता हूं। मुझे पता है कि मैं रिकॉर्ड में घोषित संस्करणों द्वारा इसे पूरा कर सकता हूं। मुझे नहीं पता कि यह संभव है कि डिजाइन समय पर मैं केवल उन तत्वों तक पहुंच सकूं जिनकी मुझे आवश्यकता है। अधिक विशिष्ट होने के लिए, उदाहरण देखेंडेल्फी - संस्करण भागों के साथ रिकॉर्ड
program consapp;
{$APPTYPE CONSOLE}
uses
ExceptionLog,
SysUtils;
type
a = record
b : integer;
case isEnabled : boolean of
true : (c:Integer);
false : (d:String[50]);
end;
var test:a;
begin
test.b:=1;
test.isEnabled := False;
test.c := 3; //because isenabled is false, I want that the c element to be unavailable to the coder, and to access only the d element.
Writeln(test.c);
readln;
end.
क्या यह संभव है?
+1। मैं 80% था यकीन है कि यह जवाब है ... – RBA
यह बिल्कुल सही है, लेकिन इस मामले में, मैं रिकॉर्ड के बजाय कक्षा का उपयोग करना चाहता हूं। यह विरासत सुविधा को जोड़ने की अनुमति देगा, जो यहां समझ में आता है (उदाहरण के लिए IsEnable संपत्ति आमतौर पर माता-पिता स्तर पर संभाली जाती है, और बच्चों के बीच साझा की जाती है)। –