delphi-Delphi函数的out、var等关键字的作用,和使用场景

问题描述

Delphi函数的out、var等关键字的作用,和使用场景

Delphi函数的out、var等关键字的作用,和使用场景,我知道var是作为传值调用,但是像out这个关键字又是什么作用呢?

解决方案

在过程或函数中,out主要用于COM和CORBA技术,Delphi解释:

An out parameter, like a variable parameter, is passed by reference. With an out parameter, however, the initial value of the referenced variable is discarded by the routine it is passed to. The out parameter is for output only; that is, it tells the function or procedure where to store output, but doesn't provide any input.

关键就是“它唯一的用处就是让写过程的程序员提醒一下,这个参数没有什么初始值的,只能给它赋值,而永远不要去用它的值。”

1、相同:var与out修饰的参数,都是通过指针引导的变量参数;它们都可以外出输出值;
2、区别:var修饰的参数,可以带入值,并在过程或函数使用;Out修饰的参数,带入值无效。out传递给过程的实际参数不必进行初始化。
在过程或函数中,out主要用于COM和CORBA技术,Delphi解释:

An out parameter, like a variable parameter, is passed by reference. With an out parameter, however, the initial value of the referenced variable is discarded by the routine it is passed to. The out parameter is for output only; that is, it tells the function or procedure where to store output, but doesn't provide any input.

关键就是“它唯一的用处就是让写过程的程序员提醒一下,这个参数没有什么初始值的,只能给它赋值,而永远不要去用它的值。”

1、相同:var与out修饰的参数,都是通过指针引导的变量参数;它们都可以外出输出值;
2、区别:var修饰的参数,可以带入值,并在过程或函数使用;Out修饰的参数,带入值无效。out传递给过程的实际参数不必进行初始化。

解决方案二:

out是向外传值,一个函数只有一个返回值,你可以用out把参数当作返回值使用。和var不同,var调用前必须先初始化,而out不需要。

解决方案三:

out只向外面发送,Var可以回传,也可以传入。貌似就这个区别

解决方案四:

this关键字的作用及其使用方法
out关键字的用法
out关键字的用法

时间: 2024-08-31 02:24:53

delphi-Delphi函数的out、var等关键字的作用,和使用场景的相关文章

C++ 和 Delphi 的函数覆盖(Override)与重载(overload

c++|函数 C++ 和 Delphi 的函数覆盖(Override)与重载(overload) Spacesoft[暗夜狂沙] 在面向对象编程中,当子类继承了来自基类的函数后,子类有可能需要对其中的一些函数作出与基类不同处理,比如: class CHuman{public: void SayMyName()//打印出对象的姓名 { cout << "Hi, I am a human" << endl; } }: 那么很明显,假如他的子类有一个同名.同参数和返回

delphi 函数指针 参数-delphi使用函数指针调用函数第一个参数不能获取。

问题描述 delphi使用函数指针调用函数第一个参数不能获取. 完整代码如下所示,定义了一个函数指针类型TFunctiontest = function (const a:integer; const b:integer; const c:integer): integer; 然后定义了一个指针变量.再定义了一个函数function functiona(const a :integer; const b:integer;const c:integer):integer;并将该函数的地址赋值给函数

全面了解Java中Native关键字的作用_java

初次遇见 native是在 java.lang.Object 源码中的一个hashCode方法: public native int hashCode(); 为什么有个native呢?这是我所要学习的地方.所以下面想要总结下native. 一.认识 native 即 JNI,Java Native Interface 凡是一种语言,都希望是纯.比如解决某一个方案都喜欢就单单这个语言来写即可.Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Ja

qt中有什么函数能够代替scanf和printf的作用

问题描述 qt中有什么函数能够代替scanf和printf的作用 我要为一个c程序添加界面,我现在已经完成了部分工作.目前困惑于如何通过qt的界面让用户输入数据(中文和数字),再获取数据后传给已写好的c程序处理.求详细解释. 解决方案 通过管道来传递数据.

详解Java线程编程中的volatile关键字的作用_java

1.volatile关键字的两层语义 一旦一个共享变量(类的成员变量.类的静态成员变量)被volatile修饰之后,那么就具备了两层语义: 1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的. 2)禁止进行指令重排序. 先看一段代码,假如线程1先执行,线程2后执行: //线程1 boolean stop = false; while(!stop){ doSomething(); } //线程2 stop = true;   这段代码是很

Java中volatile关键字的作用与用法详解_java

volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以重获生机. volatile 关键字作用是,使系统中所有线程对该关键字修饰的变量共享可见,可以禁止线程的工作内存对volatile修饰的变量进行缓存. volatile 2个使用场景: 1.可见性:Java提供了volatile关键字来保证可见性. 当一个共享变量被volatile修饰时,它会保证修

c++ delphi 回调函数-关于C++调用delphi的问题,请大侠指教

问题描述 关于C++调用delphi的问题,请大侠指教 在使用VS2008,用C++写了一个类,这个类需要调用delphi中的一个函数,这个函数原型类似于 LONGINT f(lUserID:Longint;lChannel:LOngint; lpStartTime:LPTYL_DVR_TIME; lpStopTime:LPTYL_DVR_TIME; sSavedFileName:PChar; deCallback : TDVRDownLoadCallback; dwUser:DWORD),这里

求大神帮忙把如下DELPHI的函数,转换成C#的函数,感谢,万分感谢。

问题描述 functionUncryptStr(Src,Key:String):string;//对字符串解密(Src:源Key:密匙)varKeyLen:Integer;KeyPos:Integer;offset:Integer;dest:string;SrcPos:Integer;SrcAsc:Integer;TmpSrcAsc:Integer;beginifTrim(Src)=''thenbeginResult:='';Exit;end;KeyLen:=Length(Key);ifKeyL

c++ delphi 回调函数-一个数据结构的题目,涉及Hash、双链表、回调函数等,求大神指教?

问题描述 一个数据结构的题目,涉及Hash.双链表.回调函数等,求大神指教? 数据结构相关的题目描述 typedef?struct?_FILE_NODE?{ _FILE_NODE?*Prev; _FILE_NODE?*Next; WCHAR?wzFileName[MAX_PATH]; DWORD?dwLowDateTimeLastWrite; }?FILE_NODE,?*LPFILENODE; 实现两个项目: 一.DLL 1.实现文件遍历的功能 2.导出接口中,可由用户指定遍历哪个文件夹 3.提