Delphi (-XE):通过隐式转换转换为记录类型

2023-12-21

我有一个带有方法的记录类型,代表特定的硬件测量类型,从仪器中作为字符串读取。该记录包含与字符串的隐式转换。如果我将字符串转换为记录类型,它似乎可以工作,但这安全吗?也就是说,通过隐式字符串转换将字符串转换为记录是否会根据分配临时值调用隐式转换?

var  a: MeasurementRecord;         // record type with implicit string conversion & decode methods
b: string;
c:double;
begin
b := Edit1.Text;              // Or any other string source 
a:=b;                         //Ok
a:= edit1.text;               //Ok
c:= a.returnQc;                 // returns measurement quality value

c:= MeasurementRecord(Edit1.text).returnQC;   //Avoiding local variable. This works, but is it correct useage?

end;

是的,这是绝对安全的。代码MeasurementRecord(Edit1.text)将创建一个MeasurementRecord从字符串中记录Edit1.Text使用你的

class operator Implicit(S: string): MeasurementRecord

然后调用该函数returnQC在里面。 (但是,如果您还有

class operator Explicit(S: string): MeasurementRecord

那么将使用它,因为强制转换实际上是显式的。)

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

Delphi (-XE):通过隐式转换转换为记录类型 的相关文章

  • 在 SQLite 数据库中存储日期时间值的最佳方式(Delphi)

    我将把日期时间值存储在 SQLite 数据库中 使用 Delphi 和 DISqlite 库 数据库的本质是它永远不需要在计算机或系统之间传输 因此互操作性不是一个限制 相反 我的重点是阅读速度 日期时间字段将被索引 我将对其进行大量搜索
  • 我需要避免尝试更新连接到 TSQLQuery 的 Delphi TClientDataset 中的非物理字段

    概要 我的代码正在尝试更新 Delphi XE 中的非物理字段TClientDataset 连接到TSQLQuery以其SQL属性集 作为运行时的结果创建Open命令 我有一个TClientDataset连接到一个TDatasetProvi
  • Delphi中的抽象类

    我正在使用一个具有许多抽象类的组件套件 现在我想应用多态性 但在创建对象时收到错误抽象类 即使我不需要 我是否应该重写所有虚拟方法 有什么解决方法或解决方案吗 为了创建类的实例 您需要重写所有声明为虚拟抽象的方法 即使您不使用它们 如果您确
  • 我可以在C中直接比较int和size_t吗?

    我可以比较一个int and a size t像这样的变量 int i 1 size t y 2 if i y Do something 或者我必须输入其中之一 只要满足以下条件 它就是安全的int为零或正数 如果它是负数 并且size t
  • Delphi - 如何获取 USB 可移动硬盘和记忆棒的列表?

    在我的应用程序 Delphi 中 我需要列出所有 USB 存储设备 这些可以是闪存棒or外部存储驱动器 有一个Jvcl成分JvDriveCombo 并且它有DriveType属性 问题是我是否选择DriveType Fixed那么除了外部驱
  • 当 Delphi 处于覆盖模式时,如何更改它的光标形状?

    当使用 Delphi 的任何版本时 我有时会碰巧按下插入键并打开覆盖模式 这通常是一个很大的麻烦 并且您进入覆盖模式的唯一指示是编辑器底部的小文本 当使用其他程序 首先想到的是 Notepad 时 当您处于插入模式时 文本光标是 当您处于覆
  • 解决“Show”类型类实例的隐式问题

    我正在努力使Gender实施Show类型类 scala gt trait Gender extends Show Gender defined trait Gender scala gt case object Male extends G
  • 查找Delphi项目中的所有编译错误

    我正在对我的 Delphi 项目进行一些重构 我希望能够做出改变 然后看看all项目中因该更改而中断的地方 类似于 Eclipse 列出项目的所有编译错误 在 Java 中 在 Delphi 中 我可以进行更改 然后重新编译我的项目 但编译
  • 如何从 Delphi 中的函数返回对象而不导致访问冲突?

    我有一个返回 TStringList 的 delphi 函数 但是当我返回一个值并尝试使用它时 我收到一个访问冲突错误 即 myStringList FuncStringList myStringList Items Count lt Th
  • 接口动态转换

    我有一个类实现 2 个接口并继承 1 个类 所以 一般来说它看起来像这样 class T public A public IB public IC 代码中有一点我有一个IB 但确实可以使用A 我希望动态演员会像这样 IB b ptr new
  • 如何释放 TInterfacedObject 中的 TObject 成员

    我知道接口对象是引用计数的 因此不需要手动释放它 但如果它有一个 TObject 继承成员 我是否应该在析构函数中手动释放该成员 考虑以下代码 program Project2 APPTYPE CONSOLE R res uses Syst
  • 如何使用 Gmail 的 SMTP 和 Indy 10 发送电子邮件?

    我正在使用 Delphi 2009 和 svn 中最新的 Indy 10 通过 SMTP 发送电子邮件 但它不适用于 Gmail Google Apps 托管域 当我尝试发送电子邮件时 我收到 必须首先发出 STARTTLS 命令 我尝试用
  • 防止多个实例 - 但还要处理命令行参数?

    我正在从我的应用程序处理与 Windows 相关的扩展文件 因此 当您在 Windows 中双击文件时 它将执行我的程序 然后我从那里处理该文件 如下所示 procedure TMainForm FormCreate Sender TObj
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • 将图像加载到 TImageList 并读取它们?

    我试图通过将 jpg 转换为 bmp 然后将其保存到 imagelist1 来将 jpg 加载到图像列表中 从上到下的代码片段 Selectdir 有效 fileexists 部分有效 这用于加载文件夹中的所有图像 所有图像都以 0 jpg
  • 将 null 转换为对象?

    我今天遇到了这段代码 AsyncInvoke OnTimeMessageTimer object null ElapsedEventArgs null 有没有什么问题 有时 当方法重载时 您需要这样做 以告诉编译器您正在调用哪一个 null
  • 如何读取和更改 TEdit 控件的值?

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

    我建立了一个项目并运行它 然后在 Process Explorer 中查看它 结果发现它在启动时使用的 RAM 比我想象的要多 5 倍 现在 如果我的程序运行得太慢 我会将其连接到分析器并让它告诉我什么正在使用我的所有周期 有没有类似的工具
  • 如何在拥有句柄时检查给定进程是否正在运行

    我在用ShellExecuteEx启动应用程序 成功开始阅读后TShellExecuteInfo hProcess获取已启动进程的句柄 我想定期检查我的应用程序启动的进程是否仍在运行 两个或多个同名进程可以同时运行 我想确保我的应用程序正在
  • 如果加载 dll 找不到依赖项,有什么方法可以捕获错误吗?

    我正在编写一个 Windows 32 位程序 可以使用多个可能的 dll 之一 所以它尝试依次加载每个 dll 使用SysUtils SafeLoadLibrary如果加载成功 它就会使用该 dll 不幸的是 其中一些 dll 静态链接到其

随机推荐

  • Visual Studio 2010可以自动将编译后的文件复制到另一个目录吗?

    我有两个项目 一个是编译为 EXE 的 VB6 项目 另一个是编译为 DLL 的 MSVC 2010 项目 DLL 需要与 EXE 文件位于同一文件夹中才能工作 我可以让 Visual Studio 2010 在编译后自动将编译后的 DLL
  • 打字稿不创建 dist 文件夹

    尝试编写打字稿项目 这是我的项目结构 rootdir src server ts other folders node modules tsconfig json package json tsconfig json compilerOpt
  • Python vs Matlab - 为什么我的矩阵在 python 中是奇异的

    我正在尝试将一些算法从 Matlab 转换为 Python 3 8 在算法中 我试图反转一些矩阵 结果是Matlab按照它应该做的那样反转矩阵 但Python 使用numpy linalg 说它不能反转奇异矩阵 经过一番调试 我们发现在Ma
  • 为什么 UDF 比子查询慢这么多?

    我有一个情况 我需要翻译 查找 同一个表中的多个值 我编写的第一种方法是使用子查询 SELECT SELECT id FROM user WHERE user pk created by AS creator SELECT id FROM
  • 在 JSON.NET 中转换用于反序列化的接口

    我正在尝试设置一个阅读器 它将从各个网站获取 JSON 对象 想想信息抓取 并将它们转换为 C 对象 我目前正在使用 JSON NET 进行反序列化过程 我遇到的问题是它不知道如何处理类中的接口级属性 所以一些自然的东西 public IT
  • XmlException:文档元素未出现 - 第 1 行,位置 1

    我正在尝试反序列化 xml 字符串 但由于某种原因 我收到标题中所述的错误 这是我要反序列化的代码 public void recieveObject
  • Visual Studio 2008 - 无法命中断点

    我知道很多人都遇到过这个问题 但我现在也遇到了这个问题并且无法解决问题 在完成一个项目数周后 VS 2008 随机给我一个错误 当我设置调试点时 我收到警告 当前不会命中断点 尚未为此文档加载任何符号 我已经重新构建了没有调试点的解决方案并
  • 测试重定向后加载的页面

    我有一个测试用例 应该验证在 POST 调用后 用户是否被重定向到正确的页面 Redirect Page in running FakeApplication val Some result route FakeRequest POST p
  • 多级子级上的 SwiftUI 更改已发布对象更改

    我有一个 ObservedObject AppStatus 类 它内部有多个 Published 类 如果我只在孩子方面有水平 一切都会很好 当我有一个 RecordingTimeManager 类 其中有另一个变量 2 级子级 时 问题就
  • .csv 的 ADODB 连接字符串

    我想在 Excel VBA 中使用 ADODB 处理 csv 文件 我尝试了在网上找到的一些字符串 但似乎都不起作用 我正在使用以下方式获取文件路径 strVFile Application GetOpenFilename CSV csv
  • WPF DataGrid,添加行时应用程序崩溃

    我有一个绑定到 TrackableCollection 的 wpf 数据网格 在某些罕见的情况下 并且仅对于少数选定的用户 当用户通过输入底部空白行添加新记录时 应用程序将崩溃 我无法重现该问题 我所拥有的只是抛出的异常的堆栈跟踪 有人见过
  • pandas 时间序列之间的日期时间函数?

    我一直在使用between timepandas 中 TimeSeries 的方法 它返回指定时间之间的所有值 无论其日期如何 但我需要选择both日期和时间 因为我的时间序列结构 包含多个日期 解决这个问题的一种方法虽然相当不灵活 但只是
  • Markdown 文件中到 Repo 根目录的相对链接

    我需要从 Markdown 文件获得到我的仓库根目录的相对链接 我需要它适用于任何叉子 所以这看起来是提供链接的唯一方法一些文件在根中 the Root README md or the Root README md 例如 如果它位于 do
  • 用JS获取某种类型的父HTML元素

    我的代码看起来像这样 特写 h2 span class stuff a stuff a span span class moreStuff Another test span h2 我找到了一种选择我的方法a元素 并为其附加一个 id 我现
  • 使用 OrderClose 类时无法编译代码

    我正在尝试构建一个对销售订单执行一些操作的插件 我还必须将订单设置为已履行 我在 SDK 文档中找到了必须用于以正确方式履行订单的摘录 var request new FulfillSalesOrderRequest OrderClose
  • Simpletarget 已弃用 glide 吗?

    自 Glide 早期更新以来 SimpleTarget 已被弃用 Glide with getActivity load uri asBitmap error R drawable no result diskCacheStrategy D
  • 在 ruby​​ 中对多维数组进行排序

    我有以下数组 2010 01 10 2 2010 01 09 5 2009 12 11 3 2009 12 12 12 2009 12 13 0 我只想按每组中的第二个值对其进行排序并返回最高的值 就像我希望输出为12与上面给定的输入 up
  • MiniProfilerEF6.Initialize() c# 上出错?

    我在 MVC 项目中调用的 App Start 方法中使用 miniprofiler MiniProfilerEF6 Initialize 我收到错误 the Entity Framework was already using a DbC
  • 哈希与签名二进制文件

    如果您想确保文件有效 未被篡改并且来自正确 预期的来源 您可以执行以下两件事 hashing and signing 出于我的问题的目的 hashing意味着提供要下载的文件 连同文件 的哈希值 客户端下载哈希值和文件 重新计算哈希值 并验
  • Delphi (-XE):通过隐式转换转换为记录类型

    我有一个带有方法的记录类型 代表特定的硬件测量类型 从仪器中作为字符串读取 该记录包含与字符串的隐式转换 如果我将字符串转换为记录类型 它似乎可以工作 但这安全吗 也就是说 通过隐式字符串转换将字符串转换为记录是否会根据分配临时值调用隐式转