ShowMessage(TRttiContext.Create.GetType(TStringList)
.GetProperty('Strings').ToString);
以上代码失败,因为 .GetProperty 在“字符串”、“对象”、“值”(带有索引器的属性)等属性上返回 nil。我认为这是一个已知的限制,问题是是否有任何方法可以访问这些索引属性(最好不要回退到旧的 RTTI 实用程序)。
最佳答案
索引属性没有 RTTI,但基础字段有。所以你可以直接通过RTTI访问TStringList.FList。但要小心,因为这涉及原始指针,并确保不超出 Count 属性。您可以对其他类执行类似的操作。
关于delphi - 通过新 RTTI 处理索引属性时遇到问题 [D2010],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1685392/