RttiType.TypeKind 和 RttiType.Name 之间有什么区别?

2024-04-13

以下之间的语义差异是什么:

RttiType.TypeKind 和 RttiType.Name ?

我问是因为原则上不能从名称推断出 TypeKind 吗?


The TypeKind and Name的属性TRttiType是完全不同的事情。

  • TypeKind告诉你你属于哪种类型。这可以是 23 个不同选项中定义的一个TTypeKind枚举类型。
  • Name告诉你你有哪种类型。这是一个字符串,有无限数量的可能值。

不同的类型(通常)有不同的名称,但也可能有相同的名称TypeKind。例如,考虑这个简单的演示。

program RttiDemo;

{$APPTYPE CONSOLE}

uses
  Rtti;

procedure Main;
var
  Context: TRttiContext;
  TObjectType, TInterfacedObjectType: TRttiType;
begin
  TObjectType := Context.GetType(TObject);
  TInterfacedObjectType := Context.GetType(TInterfacedObject);
  Writeln(TObjectType.Name);
  Writeln(TInterfacedObjectType.Name);
  Assert(TObjectType.TypeKind=TInterfacedObjectType.TypeKind);
end;

begin
  Main;
  Readln;
end.

输出是:



TObject
TInterfacedObject
  

所以,你无法推断类型kind从类型name因为种类和名称是完全不同的东西。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RttiType.TypeKind 和 RttiType.Name 之间有什么区别? 的相关文章

  • 在 Delphi XE 中将类作为过程的参数传递

    我需要做的是这样的 procedure A type of form var form TForm begin form type of form Create application form showmodal freeandnil f
  • 我应该害怕使用 UDP 进行客户端/服务器广播通话吗?

    我在过去的两天里阅读了每一篇StackOverflow问题和答案 以及googling当然 关于印地TCP and UDP协议 以便决定在我的用户应用程序和 Windows 服务之间的通信方法中应该使用哪一种 从我目前所看到的来看 UDP是
  • 如何将 JSON 字符串转换为图像?

    我有一个将图像转换为 JSON 数组的应用程序 并将其保存到 blob 字段中 function getImage String var memorystream TMemoryStream jsonArray TJSONArray beg
  • 在TImageViewer中,如何获取用户点击图片的位置?

    在TImageViewer控件中 用户可以缩放或平移图片 我的问题是 当用户点击图片时 如何获取用户在图片上的点击位置 尤其是用户可以对图片进行放大 缩小或平移之后 如何获取对应的图片点击位置呢 As shown below How to
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • TColorProperty德尔福柏林10.1.2?

    我正在尝试将组件从 Delphi 7 转换为 Delphi Berlin 平面组件 https sourceforge net projects flatstyle https sourceforge net projects flatst
  • Delphi中使用FindVCLWindow调用WinHelp32(WinXP Pro SP3 32bit)

    有什么问题吗 procedure TForm1 VCLHelpClick Sender TObject var Ctrl TWinControl begin Ctrl FindVCLWindow Mouse CursorPos if Ctr
  • 将图像加载到 TImageList 并读取它们?

    我试图通过将 jpg 转换为 bmp 然后将其保存到 imagelist1 来将 jpg 加载到图像列表中 从上到下的代码片段 Selectdir 有效 fileexists 部分有效 这用于加载文件夹中的所有图像 所有图像都以 0 jpg
  • 如何比较枚举类型集

    从某个时刻开始 我厌倦了编写设定条件 and or 因为对于更多的条件或更长的变量名 重新编写会变得笨拙且烦人 所以我开始写助手这样我就可以写ASet ContainsOne ceValue1 ceValue2 代替 ceValue1 in
  • logback的“谨慎模式”是如何实现的?

    The 审慎模式 http logback qos ch manual appenders html prudentlogback 中的序列化所有 JVM 之间的 IO 操作 写入同一文件 可能运行在不同的主机上 在其他日志记录框架中 如果
  • H2161 重复资源[一个VCL项目可以有2个类名相同但命名空间不同的表单吗?]

    我尝试在 2 个不同的命名空间中创建具有相同类名的 2 个表单 FirstNameSpace ExampleFormName TExampleFormName SecondNameSpace ExampleFormName TExample
  • 从其可执行文件的路径获取服务名称

    我有一个可执行文件的路径 它是一个正在运行的服务应用程序 例如 C Program Files x86 Someapp somesvc exe 我想停止并启动它 为此我想我需要获取服务的名称 如下所示 this https stackove
  • 在 Delphi 中淡入 alpha 混合 PNG 表单

    几年前 当 Vista 首次发布时 我曾提出过这个问题 但始终没有解决这个问题 并把它搁置起来 留待以后再考虑 我有一个启动屏幕 我花了很大力气让它看起来很棒 这是 32bpp alpha 混合的 PNG 我有一些代码 如果需要 我可以挖掘
  • 如何读取和更改 TEdit 控件的值?

    我有一个表格TForm1有 5TEdit and 2 TBitBtn 我还需要该程序 以便在输入数字数据后Edit1 and Edit2 on BitBtn1Click Edit1 and Edit2值将被求和并显示在Edit3 你想做这样
  • Delphi 的内存分析工具?

    我建立了一个项目并运行它 然后在 Process Explorer 中查看它 结果发现它在启动时使用的 RAM 比我想象的要多 5 倍 现在 如果我的程序运行得太慢 我会将其连接到分析器并让它告诉我什么正在使用我的所有周期 有没有类似的工具
  • FireMonkey iOS RAD Studio XE2 - 在从 URL 加载的表单上显示图像

    是否可以将 TImage 放置在 iOS 的 FMX 表单上 并将图像 jpg 从 URL 加载到此 TImage 中以在 iOS 应用程序中显示 我尝试过但没有成功 任何正确方向的提示或指出都会受到赞赏 将 TButton TImageC
  • 如何在拥有句柄时检查给定进程是否正在运行

    我在用ShellExecuteEx启动应用程序 成功开始阅读后TShellExecuteInfo hProcess获取已启动进程的句柄 我想定期检查我的应用程序启动的进程是否仍在运行 两个或多个同名进程可以同时运行 我想确保我的应用程序正在
  • 使用 Delphi 读取 Excel 电子表格

    我需要使用 Delphi 2010 读取和写入 Excel 电子表格 没什么花哨的 只需读取和写入不同工作表上特定单元格和范围的值 需要在没有安装 Excel 的情况下工作并支持 Excel 2007 我看过的一些东西 我尝试过使用ADO
  • 似乎有时 Delphi 是区分大小写的 - “覆盖方法应该与祖先的大小写匹配”

    今天我遇到了一个 奇怪 的提示 覆盖方法 xxxx 应匹配祖先 yyyy 的大小写 解决方案是完全按照祖先中的方式声明方法名称 我相信这是自 Delphi Net 编译器以来编译器中保留的东西 与祖先中完全相同的方法声明方法使编译器 沉默
  • 为什么 TImage 旋转我的图像?

    编写一个移动应用程序 它从安全网站提取图像 如下所示 第一个图像 提取不正确 注意网络版本与移动版本 第二个图像在网站上正确显示 但 Delphi TImage 由于某种原因正在旋转它我不明白为什么 旋转设置为 0 并且在 TImage 组

随机推荐

  • 使用 AngularJS 为 Windows 应用商店应用程序“无法添加动态内容”,但它可以工作

    我正在使用 AngularJS 创建一个 Windows 应用商店应用程序 或 Metro 应用程序 或无论他们如何称呼它 我解决了 Javascript 运行时错误 无法添加动态内容 该错误导致应用程序崩溃 请参阅here http on
  • 为什么 Java 在其语言语法中不使用 out 参数,而 C# 则使用?

    虽然我不太喜欢在 C 中使用 out 参数 但我想知道为什么 Java 选择不在其语言语法中包含它 是否有任何特殊原因 或者可能是因为一个人可以简单地将对象作为参数类型传递 可能是因为设计者觉得没有必要允许多种返回对象的方式 关于委托 泛型
  • 区分按下“home”按钮和打开另一个 Activity

    我有三项活动 飞溅活动 主要活动 玩家活动 当然 应用程序从 SplashActivity 启动 然后启动 MainActivity 并关闭 MainActivity 在某个时刻启动 PlayerActivity 并进入后台 MainAct
  • Spring 与 Hibernate - 线程“main”中的异常 java.lang.NullPointerException

    我正在学习 spring 与 hibernate 集成 我遇到了这个异常 Exception in thread main java lang NullPointerException Sep 04 2014 7 06 50 PM org
  • 如何将WCF项目平台目标更改为x86?

    我编写了一个使用第三方项目的项目 只有在 项目属性 下的 构建 下的 平台目标 设置为 X86 而不是 我的项目 中的 任何CPU 时 我才能运行它 但是 当我尝试将此第三方项目与我的 WCF 项目一起使用时 平台目标 功能不会出现在 WC
  • Jenkins BlueOcean 中的“分支索引”活动是什么

    我正在詹金斯蓝海中设置多分支管道 一切都开始顺利进行 我注意到的一件事是 每隔一段时间 我就会执行名为 分支索引 的作业 我的构建包含一些繁重的单元测试和代码覆盖率 需要大约 4 小时 30 才能执行 所以让这个作业随机执行 2 次并不是很
  • 使用 Popen 替换 Python 中的 Bash 进程

    我试图通过从 python 子进程库调用 ffmpeg 来创建循环视频文件 这是给我带来问题的部分 import subprocess as sp sp Popen ffmpeg f concat i lt for f in Desktop
  • Oracle 在组中的列中查找具有多个值的行

    我正在尝试查找某个零件号 组 是否有多 个运营商 我已经尝试过下面的代码但不起作用 SELECT PART NO CARRIER ROW NUMBER OVER PARTITION BY PART NO CARRIER ORDER BY P
  • 如何向菜单项添加工具提示?

    我正在尝试为菜单栏项添加工具提示 例如 Save 但我无法获取需求菜单项的实例 我可以添加这个工具提示吗 我正在使用 Tkinter 和 python 2 7 def createMenu self menu Menu root root
  • 编写java代码时出现SIGSEGV

    我有一段代码在 HTC Desire HD v2 3 3 上运行得很好 但是在 HTC Desire v2 2 上运行时 关闭蓝牙套接字时会崩溃并出现 SIGSEGV 07 25 16 23 52 462 INFO DEBUG 64 07
  • 如何调用.Net Core需要签名的XML SOAP服务?

    我意识到这个问题指的是旧技术 我正在呼叫供应商系统 并且无法更改服务 我们需要调用 XML SOAP WS 然后签署请求 10 年前 我会使用 Web 服务增强 WSE 3 0 之类的东西 然后继续前进 就像今天一样 我陷入了在 Net C
  • 持久性单元定义冲突

    春季3 1 1 Maven 3 0 4 日本PA Eclipse wtp 靛蓝 你好 我在服务器启动时遇到以下异常 我的项目中只有一个 persistence xml 有任何想法吗 谢谢埃里克 引起原因 java lang IllegalS
  • Node.js 找不到模块“tcp”

    节点在以下行崩溃 var tcp require tcp 错误文本 node js 201 throw e process nextTick error or error event on first tick Error Cannot f
  • 可折叠工具栏布局中的稀松布是什么?

    我在 Android 开发人员上阅读了可折叠工具栏布局 那里使用了一个术语 稀松布 它是什么 Scrim 隐藏或掩盖某事的事物 根据 Android CollapsingToolbarLayout 稀松布内容 当滚动位置达到某个阈值时显示或
  • 使 WooCommerce 结账运送字段可见并删除“运送到不同地址?”复选框

    我想知道是否有办法删除 运送到其他地址 复选框 在 woocommerce 结帐页面中 但保持运输字段可见 我努力了 add filter woocommerce cart needs shipping address return fal
  • Node.js 上通过套接字连接 Redis

    由于共享托管 目标主机上的我的 redis 服务器不在端口上运行 而是在非常特定的套接字上运行 可以通过套接字文件连接到该套接字 只有我的用户可以访问 但是 我还没有找到如何通过套接字指定连接node redis and connect r
  • e2e 测试是否应该将数据保存在真实数据库中?

    我读了很多关于 e2e 测试的文章 但我无法理解的一件事是 e2e 测试应该有多 真实 无论我使用什么工具进行 e2e 测试 我发现大多数时候它们都是在本地 开发或 alpha 环境中使用 如果我的应用程序具有身份验证 我是否应该在数据库中
  • 当具有复杂类型时,KnockoutJs 中的值绑定无法进行选择

    我正在尝试在选择元素上使用值绑定 如本小提琴中所述 http jsfiddle net MikeEast nM6dd 2 http jsfiddle net MikeEast nM6dd 2 但是 我似乎无法设置所选选项 值绑定 我知道我可
  • 为什么我的 XIB 文件无法本地化 (iPhone)?

    情况 我正在启动 XCode 为 iPhone 创建一个新项目 查看应用程序 并将 XIB 文件加载到 IB 中 我操作视图 添加带有字符串 hello 的标签 保存 构建 运行应用程序 一切都很好 现在我正在本地化 XIB 我所做的 右键
  • RttiType.TypeKind 和 RttiType.Name 之间有什么区别?

    以下之间的语义差异是什么 RttiType TypeKind 和 RttiType Name 我问是因为原则上不能从名称推断出 TypeKind 吗 The TypeKind and Name的属性TRttiType是完全不同的事情 Typ