संकलन निम्नलिखित कोड का टुकड़ा दिया गया है:TCustomAttribute - "लगातार अभिव्यक्ति की उम्मीद" त्रुटि
type
MyIntf = interface
['{C6184693-663E-419F-B2DA-4DA1A0E33417}']
procedure Foo;
end;
InvisiblePropInterfaces = class(TCustomAttribute)
private
FGUIDS: array of TGUID;
public
constructor Create(const GUIDS: array of TGUID);
end;
[InvisiblePropInterfaces([MyIntf])] // <-- Constant expression expected error
TMyClass = class(TInterfacedObject, MyIntf)
procedure Foo;
end;
संकलक क्यों लगता है कि यह एक निरंतर अभिव्यक्ति नहीं है करता है? लेकिन यह देखते हुए कि मैं इस तरह InvisiblePropInterfaces का उपयोग करता हूं, संकलक बस खुश है?
...
var
I: InvisiblePropInterfaces;
begin
I:= InvisiblePropInterfaces.Create([MyIntf]);
...
ऐसा लगता है कि मैं गुणों के अपने पहले वास्तविक उपयोग के साथ भाग्य से बाहर हूं। खैर, तो मुझे अपना डिज़ाइन बदलना होगा और बस मेरी कक्षाओं को किसी अन्य इंटरफ़ेस से सजाना होगा, जैसे: IInvisiblePropInterfaces = इंटरफ़ेस फ़ंक्शन GetGuids: TGuid की सरणी – iamjoosy