Delphi out 参数 string Integer

http://www.delphibasics.co.uk/RTL.asp?Name=Out

 

http://stackoverflow.com/questions/14507310/whats-the-difference-between-var-and-out-parameters

A var parameter will be passed by reference, and that's it.

var参数将以引用方式传递。

An out parameter is also passed by reference, but it's assumed that the input value is irrelevant.

out参数也是以引用传递,但是它(编译器)假定输入值是不相关的。

For managed types, (strings, Interfaces, etc,) the compiler will enforce this, by clearing the variable before the routine begins, equivalent to writing param := nil.

对(生存期自动)管理的类型(字符串,接口,等),编译器会强制在routine开始前清空out变量,等同于写参数值为空。

For unmanaged types, the compiler implements out identically to var.

对非管理类型,编译器实现out等同于var参数。

Note that the clearing of a managed parameter is performed at the call-site and so the code generated for the function does not vary with out or var parameters.

说明,对受管理类型参数的清理是在 调用位置 进行的,所以(编译器)为被调用函数产生的代码是不包括out或var参数的。

 

share|edit

edited Jan 24 '13 at 19:05

David Heffernan
316k22396683
answered Jan 24 '13 at 17:38

Mason Wheeler

procedure testout(const str: string; out a: string; out I: Integer);
begin
ShowMessage(a + IntToStr(I));//100  a是空的
a := str;
I := 200;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
s, ss, ds, qx, dz: string;
I: Integer;
jo: ISuperObject;
begin
s := '外面';
ss:= 'out';
I:= 100;
testout(s, ss, I);
ShowMessage(ss + IntToStr(I));//外面200

Exit;

end;

  

 

转载于:https://www.cnblogs.com/CodeGear/p/4134679.html

Delphi中MD5算法的实现、优化与常见问题解决方案 哈希算法是计算机科学中用于数据完整性校验和生成唯一标识的基础技术,其核心原理是将任意长度的输入通过特定计算映射为固定长度的输出。MD5作为一种经典的哈希函数,因其计算速度快、实现简单,在数据校验、缓存键生成等非安全敏感场景中仍有广泛应用。在Delphi开发中,实现MD5算法常面临编码问题、性能优化和跨平台兼容性等挑战。本文通过一个经过生产环境验证的纯Pascal实现,详细解析了MD5算法的流式处理机制,并针对字符串编码、大文件处理和线程安全等常见问题提供了实用解决方案,帮助开发者高效集成这一轻量级校验功能。 阅读详情

相关推荐

Java List转String全解析:从基础方法到性能优化实战

在Java编程中,字符串处理是基础且高频的操作,其中集合数据转换为字符串是常见的需求。其核心原理涉及字符串的不可变性、内存分配及拼接效率。掌握高效的转换技术对提升应用性能、确保数据格式正确传输具有重要价值,广泛应用于日志输出、SQL条件拼接、数据序列化等场景。本文聚焦List到String的转换,深入剖析StringBuilder、Stream API等方案,并针对空值处理、性能陷阱等热词问题提供实战解决方案,帮助开发者优化数据处理流程。

weixin_34007020的博客 541

Delphi 函数的 out 形参

【代码】Delphi 函数的 out 形参。

381

深入解析C++ I/O流:从核心原理到文件与字符串处理实战

在C++编程中,输入输出(I/O)是程序与外界交互的基础。C++通过流(Stream)这一核心抽象机制来处理I/O操作,它将数据视为流动的字节序列,实现了设备无关的读写方式。其原理基于面向对象的类层次结构,通过流缓冲区(streambuf)分离格式化与底层字节操作,既保证了灵活性又提升了效率。这一设计为处理控制台、文件和字符串数据提供了统一接口,技术价值在于能编写出更健壮、可维护的代码。在实际应用场景中,无论是格式化控制台输出、读写配置文件,还是进行复杂的数据解析与拼接,流机制都至关重要。本文聚焦于C++流

weixin_30644369的博客 361

人肉保证,Delphi中的out参数

Delphi里面,用关键字var或out,可以让函数参数按传递引用,奇怪的是,var和out根本没有本质上的区别,按官方的说法:An out parameter, like a variable parameter, is passed by reference. With an out parameter, however, the initial value of the referenc

于无声处 6089

delphi 函数参数传递 默认参数(传值)、var(传址)out(输出)、const(常数)四类

参数可以分为: 默认参数(传值)、var(传址)out(输出)、const(常数)四类 {默认参数是传值, 不会被改变}function MyF1(x: Integer): Integer;begin  Inc(x);  Result := x;end; {var参数是传址, 会被改变}function MyF2(var x: Integer): Integer;begin  Inc(x);

rznice的专栏 1万+

存储过程篇3--参数

前两天改了一个小的无参存储过程,以至于差点忽略掉参数的重要性,今天改了一个大约700行的存储过程,本身有参数传入并计算出返回值,感受到参数的重要性,这次分享下含参存储过程的学习总结;   含参存储过程结构: create or replace procedure A(B in varchar,C out integer,D out SYS_REFCURSOR) as V_B  begin...

布偶猫爸爸的博客 674

从Chromium源码编译到Delphi自动化:完整实战指南

浏览器内核是现代Web应用的基石,其核心原理涉及渲染引擎、JavaScript引擎和多进程架构。理解这些底层技术对于进行浏览器定制、性能优化和深度自动化至关重要。Chromium作为开源浏览器项目,不仅为Chrome、Edge等主流浏览器提供了技术基础,其开放的生态也催生了WebRTC实时通信、CEF嵌入式框架等关键技术,具有极高的工程价值。在实际应用场景中,开发者常需获取和编译Chromium源码以进行研究,或通过Delphi Chromium等组件实现浏览器自动化操作。本文围绕Chromium源码获取、

weixin_34378969的博客 357

从Chromium源码到CEF应用:WebRTC集成与Delphi自动化实战指南

浏览器内核是现代Web应用的核心基础,其开源实现Chromium不仅驱动着Chrome、Edge等主流浏览器,更是一个集成了渲染引擎、JavaScript引擎和多媒体框架的完整技术平台。理解Chromium的架构原理,对于实现高性能Web内容渲染、实时通信等功能集成具有重要技术价值。在实际工程中,开发者常面临源码获取困难、构建复杂等挑战,尤其是在集成WebRTC等关键模块或进行浏览器自动化开发时。通过使用Chromium Embedded Framework(CEF)等成熟封装框架,开发者可以绕过底层复杂性

weixin_30924239的博客 319

Delphi DevExpress VCL 25.2.7 安装部署与TcxGrid实战指南

第三方控件库是提升桌面应用开发效率与界面现代化水平的关键技术组件。其核心原理在于扩展原生框架功能,通过封装复杂UI逻辑与交互模式,为开发者提供可复用的高性能可视化模块。在Delphi生态中,DevExpress VCL Controls作为业界标杆,其技术价值体现在大幅缩短数据密集型应用(如ERP、CRM系统)的开发周期,并提供媲美Office的现代交互体验。典型应用场景包括企业级数据管理后台、仪表盘和复杂表单系统。本文聚焦于DevExpress VCL 25.2.7版本的安装部署全流程,深入解析TcxGr

weixin_34160277的博客 351

Delphi数据安全实战:DCPcrypt加密库深度解析与项目应用

数据加密是软件安全的核心基础,其原理是通过特定算法将明文信息转换为不可读的密文,确保数据在存储和传输过程中的机密性与完整性。在Delphi开发领域,实现这一目标需要依赖高效可靠的加密库。DCPcrypt作为一个纯Pascal编写的经典加密组件,提供了AES、DES、SHA256等多种算法支持,其价值在于无需外部DLL依赖,具备优异的跨版本兼容性,为Delphi应用程序构建本地数据安全防线提供了坚实保障。本文聚焦于DCPcrypt库,深入剖析其架构设计、线程安全模型,并结合大文件流加密、跨系统交互等实际应用场

技术百科 444

从源码到实战:深入解析 Chromium 核心价值与 CEF、WebRTC 应用

浏览器内核是现代 Web 应用和桌面客户端的技术基石,其核心原理决定了网页渲染、JavaScript 执行和网络通信等关键行为。Chromium 作为开源浏览器内核的事实标准,不仅定义了 Web 平台的技术规范,更通过其模块化架构为开发者提供了深度定制的可能。理解其工程价值,能帮助开发者在构建需要复杂 Web 渲染能力的桌面应用(如基于 Electron 或 CEF 的应用)或集成实时通信模块(如 WebRTC)时,做出高效的技术选型与集成方案。本文聚焦于解决开发者在实践中遇到的核心痛点,例如如何绕过网络障

weixin_30621711的博客 490

枚举进程句柄

删除系统中的文件会提示 有进程已经打开了这个文件会导致不能删除该文件 在网上找到了在ring3下实现文件碎甲的一篇介绍:在ring3上实现文件碎甲功能 其中首先需要实现的就是需要枚举出系统中每个进程打开的文件句柄 枚举进程 枚举句柄 这些功能都需要用到从Ntdll.dll中导出系统内核函数 比如函数 ZwQuerySystemInformation ZwQueryInformat...

weixin_30902251的博客 498

C++函数设计四层跃迁:从语法正确到工程可靠

函数是C++程序组织逻辑的核心单元,其本质远不止语法层面的代码块定义,而是封装行为契约、数据边界与执行上下文的微型系统。理解函数需把握参数传递机制、作用域规则、异常安全与ABI兼容性等底层原理,技术价值在于提升代码复用性、可测试性与跨平台稳定性。典型应用场景包括数学计算(如sqrt)、算法封装(如快速幂)、事件解耦(回调函数)及局部逻辑抽象(lambda)。本文聚焦C++实验1中的函数实践,深入剖析接口设计、语义健壮性与工程可维护性,帮助初学者建立扎实的函数思维与现代C++工程习惯。

weixin_33857679的博客 349

上位机开发全攻略:C#/Qt双栈实战与工业通讯协议解析

上位机(Host Computer)作为工业控制系统的核心组件,承担着设备监控、数据采集和人机交互的关键职责。其技术原理基于硬件通讯协议解析、实时数据处理和多线程调度机制,通过分层架构设计实现业务逻辑与界面展示的分离。在工业自动化领域,上位机开发的技术价值体现在提升设备通讯稳定性、保障数据采集完整性和优化生产流程效率。典型应用场景包括智能制造产线监控、能源管理系统和设备远程运维等。随着工业互联网发展,掌握Modbus、OPC UA等工业通讯协议以及多线程架构设计成为开发者的核心竞争力。本文基于实际项目经验,

weixin_33906657的博客 354

SSM框架整合实战:构建企业级JavaWeb应用

SSM框架(SpringMVC+Spring+MyBatis)是JavaWeb开发的主流技术栈组合,通过MVC分层架构实现业务逻辑与表现层的解耦。其核心原理基于Spring的IoC容器管理组件依赖,MyBatis的ORM映射处理数据持久化,配合SpringMVC的请求分发机制构建完整Web体系。该技术组合在电商系统、ERP等企业级应用中具有显著优势,支持高并发事务处理与复杂业务场景。本文以MySQL/Oracle双数据库支持为例,详解SSM框架整合过程中的动态数据源配置、MyBatis二级缓存优化等工程实践

aibi9196的博客 445

Inkling AI编程助手评测:836 Elo评分背后的代码生成与错误检测实战

AI编程助手是基于大语言模型的智能代码生成工具,通过深度学习技术理解编程语境和开发者意图。其核心原理是利用海量代码库训练出的模型,能够预测代码补全、检测潜在错误并提供优化建议。这类工具的技术价值在于提升开发效率、减少人为错误,并帮助团队统一代码规范。在实际应用中,AI编程助手广泛应用于Web开发、数据分析、算法实现等场景,特别适合快速原型开发和复杂业务逻辑实现。以Inkling为例,该工具在AA-Briefcase基准测试中获得836 Elo评分,展现出优秀的代码补全能力和错误模式识别功能。通过实战演示可见

weixin_30338497的博客 517
下一篇: TStringList 的Sorted属性
dianmengkui1387
博客等级 码龄10年 1粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值