gpt4 book ai didi

delphi - Delphi 2009 RTL/VCL 中的属性语法?

转载 作者:行者123 更新时间:2023-12-03 15:36:35 30 4
gpt4 key购买 nike

我工作的地方仍在使用 Delphi 2009。我碰巧在查看 VCL 中的 Forms 单元并偶然发现:

[UIPermission(SecurityAction.LinkDemand, Window=UIPermissionWindow.AllWindows)]
function DisableTaskWindows(ActiveWindow: HWnd): TTaskWindowList;

此属性显然是 CLR 类 UIPermissionAttribute,但与 CLR 的其他引用不同,此属性未包装在条件编译指令中

这让我感到惊讶,因为据我所知,在 2010 年之前的 Delphi Win32 版本中,括号仅用于数组和集合类型中的索引表示法、定义集合并将 GUID 分配给接口(interface)。事实似乎并非如此。

我进行了正则表达式搜索,并在整个 RTL/VCL 中找到了数十个示例。有些是类型的属性,有些是方法的属性。

这些是直接被编译器忽略还是它们在 Win32 中有某种用途?

<小时/>

我还发现语法如下:

[!UnitName]
[!InterfaceName]

这似乎与从 IDE 向导中的模板生成源文件有关,但这些文件不在 RTL 源文件夹中。它们位于对象存储库文件夹中。

最佳答案

我曾希望属性也许是一个未记录的功能,类似于类助手在被记录之前多年的可用方式,但事实似乎并非如此。

我尝试了一个简单的测试,并在类定义之前添加了属性符号。编译器并没有卡住它,但它确实发出了不支持自定义属性的警告。

关于delphi - Delphi 2009 RTL/VCL 中的属性语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9316032/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com