问题标签 [rtti]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
26643 浏览

c++ - 动态转换有哪些“好用”的例子?

我们经常听到/读到应该避免动态转换。根据您的说法,我想知道它的“有用”示例是什么?

编辑:

是的,我知道另一个线程:确实是在阅读那里的第一个答案时,我问了我的问题!

0 投票
2 回答
840 浏览

delphi - Delphi OTA 和 RTTI 错误

我正在写一个德尔福专家。我需要能够将值写入作为对象的属性上的属性。例如,我在表单上有一个 GroupBox,我想编辑 Margins.Left 属性。我正在使用以下过程来执行此操作,但如果在标记线上给出了 AV。

该过程从(属性编辑器)获取属性名称(例如“Margins.Left”)和新值的组件,解析出属性名称,获取对象,读取当前值并尝试更改它(如果不同)。然后它调用一个方法来记录任何更改。

0 投票
4 回答
2944 浏览

delphi - Delphi中对象的RTTI

我正在尝试在 Delphi 中将对象解析为 XML,因此我阅读了有关调用对象的 ClassInfo 方法以获取其 RTTI 信息的信息。

问题是,这显然只适用于 TPersistent 对象。否则,我必须在源代码中专门添加一个编译器指令 {$M+},以便编译器生成 RTTI 信息。

所以我很高兴地添加了指令,结果发现,即使它确实从 ClassInfo 调用中返回了一些东西(它曾经返回 nil),现在我无法从中检索类的属性、字段或方法。就像它创建的对象是空的。

知道我在这里想念什么吗?谢谢!

0 投票
4 回答
122735 浏览

c# - is vs typeof

这些代码中哪一个更快?

编辑:我知道他们不做同样的事情。

0 投票
10 回答
18390 浏览

c++ - C++ RTTI 可行的例子

我熟悉 C++ RTTI,并且觉得这个概念很有趣。

仍然存在很多滥用它的方法而不是正确使用它(RTTI-switch 恐惧浮现在脑海中)。作为一名开发人员,我发现(并使用)它只有两个可行的用途(更准确地说,一个半)。

您能否分享一些 RTTI 是解决问题的可行方法,包括示例代码/伪代码?

注意:目的是建立一个可供初级开发人员参考、批评和学习的可行示例库。

编辑:你会发现下面的代码使用 C++ RTTI

0 投票
4 回答
15921 浏览

delphi - 在运行时复制组件

有没有一种简单的方法可以复制父组件下的所有子组件,包括它们的已发布属性?

例如:

  • 面板
    • 标签
    • 编辑
    • 列表视图
    • TSpecialClassX

当然,最重要的因素是,它应该复制我在 TPanel 上放置的任何新组件,而在正常情况下不修改代码。

我听说过 RTTI,但实际上从未使用过。有任何想法吗?

0 投票
5 回答
21794 浏览

c++ - 提取 C++ 模板参数

虽然我很怀疑,但我很好奇是否可以从现有类型中提取原始类型模板参数,也许使用 RTTI。

例如:

是否可以在上面的代码中提取数字 16 而无需在其他地方进行硬编码?欢迎使用编译器特定的实现,尽管我对g++.

0 投票
2 回答
3327 浏览

delphi - Delphi RTTI 麻烦:GetPropInfo 返回 nil 且 {$METHODINFO ON}?

即使给定的类是用正确的 {$METHODINFO} 指令声明的,GetPropInfo 是否有可能返回 nil。

0 投票
3 回答
609 浏览

c++ - Finding the type of an unknown object in C++

There are many ways to check programs for memory leaks. You end up with that list of pointers to leaked memory blocks, but is there a good way to find out more information for each block? For example: if I know that the object was a string, the actual string value could make finding the leak a lot easier.

Is there a backdoor into RTTI that makes that possible?

Problems to solve would be that by the time you get the pointers the runtime system is already in a state of shutdown and you get raw memory block pointers instead of pointers to objects (though in many cases that might be the same).

0 投票
7 回答
12725 浏览

xml - 使用 RTTI 而不是自定义代码将 Delphi 对象树序列化为 XML 的好方法是什么?

使用 RTTI 而不是自定义代码将 Delphi 对象树序列化为 XML 的好方法是什么?

我很想发现这个功能已经内置在 Delphi 中,但似乎没有。

我发现了一些似乎可以执行此功能的组件(已在下面发布)。您是否使用过它们中的任何一个或其他产品?你自己建了吗?在德尔福中,我是否遗漏了一些明显的东西?