Delphi里参数修饰符const、var、out的作用分别是什么?


本文整理自网络,侵删。

 
Delphi里参数修饰符可以使用const、var、out,但这三个的区别是什么呢?可以参考下面的说明:

const修饰符
示例代码:

procedure TForm7.TestVar(const A: string);
begin
  A := A + 'Test';
end;
以上代码编译则会报错的,无法执行!因为加了const修饰符是不允许修改变量值的。

var修饰符
示例代码:
Pascal
procedure TForm7.Button1Click(Sender: TObject);
var
  S: string;
begin
  S := 'Delphi';
  TestVar(S);
  ShowMessage(S);
end;

procedure TForm7.TestVar(var A: string);
begin
  A := A + 'Test';
end;
以上代码执行后会显示出DelphiTest,因为var修饰是地址传递,会修改原有的变量值。

out修饰符
示例代码:
Pascal
procedure TForm7.Button1Click(Sender: TObject);
var
  S: string;
begin
  S := 'Delphi';
  TestVar(S);
  ShowMessage(S);
end;

procedure TForm7.TestVar(out A: string);
begin
  A := A + 'Test';
end;
以上会输出Test,因为out是用于返回赋值的,而对out的任何输入都会被忽略。out参数不需要进行初始化。

无任何修饰符
示例代码:
Pascal
procedure TForm7.Button1Click(Sender: TObject);
var
  S: string;
begin
  S := 'Delphi';
  TestVar(S);
  ShowMessage(S);
end;

procedure TForm7.TestVar(A: string);
begin
  A := A + 'Test';
end;
以上会输出Delphi,因为方法TestVar其实是创建了一个新的变量A,而不会对原来的变量值做修改。

相关阅读 >>

Delphi连接access提示密码无效解决一例

Delphi 字符串加单引号

Delphi 从给定字符串中截取n个字节的字符(解决汉字截取乱码问题)

你的软件源代码安全吗?

Delphi winapi: openprocess、getexitcodeprocess、terminateprocess (qq)

Delphi xe android 判断自己程序是否是前台程序

Delphi 代码查询一个 ip 地址的归属地

Delphi 计算一个路径相对于另一路径的相对路径

Delphi利用scrollbox实现图像漫游

Delphi tclientdataset的使用

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...